C ++分段故障指针

时间:2014-10-11 03:38:50

标签: c++ arrays pointers

我正在编写的程序采用一系列名称和年龄并按字母顺序排列。有时程序会起作用。大多数情况下,在打印字母顺序列表的过程中,我会遇到分段错误。

这是我头文件

中的示例
public:

    static const int MAXSTU = 50;

    Student();

    void inputData();
    void sortData();
    void printOriginalData();
    void printAlphaData();

private:
    int arraytotal;
    int *temp1;
    std::string *temp2;

    std::string originalname[MAXSTU]; 
    std::string *alphaname[MAXSTU];
    int originalage[MAXSTU];
    int *alphaage[MAXSTU];

这些是导致问题的功能。

void Student::sortData() {
      for(int i=0;i < arraytotal;i++) {
          if (originalname[i] > originalname[i+1] ) {
            temp1 = alphaage[i];
            alphaage[i] = alphaage[i + 1];
            alphaage[i + 1] = temp1;
            temp2 = alphaname[i];
            alphaname[i] = alphaname[i + 1];
            alphaname[i+1]= temp2;
          }
      }
}

void Student::printAlphaData()
{
     cout << "\nAlphabetized list\n";
     cout << "---------------------------\n";

     for (int i = 0; i < arraytotal; ++i) 
     {
         cout << left << setw(30) << *alphaname[i];
         cout << right << setw(10) << *alphaage[i] << endl; 
     }
     cout << endl;
}

任何有关确定问题所在的帮助都将受到赞赏。还有更好的方法将我的数组按字母顺序排序吗?

0 个答案:

没有答案
相关问题