-1

これが私の元の投稿です:ファイルを開いた後にプログラムがクラッシュする

コードを何度も修正しようとしましたが、それでもクラッシュするか、制御不能に実行されます。私はまだ解決策を見つけていません。

これが私の更新されたコードです:

while(!intInputFile.eof())
{
   intNode* anotherInt;
   anotherInt = new intNode;
   if(intList==NULL)
   {
       intList = anotherInt;
       lastInt = anotherInt;
   }
   else
   {
      lastInt->nextNode = new intNode;
      lastInt = lastInt->nextNode;
      lastInt->nextNode = NULL;
   }
   lastInt->intValue = fileInt;
   lastInt = lastInt->nextNode;
   lastInt->nextNode = NULL;
   intInputFile >> fileInt; // *** Problem occurs on this line. ***
}
4

1 に答える 1

2

問題は、lastInt を 2 回更新していることです。

else
{
   lastInt->nextNode = new intNode;
   lastInt = lastInt->nextNode;
   lastInt->nextNode = NULL;
}

lastInt->nextNode が NULL になりました

lastInt->intValue = fileInt;
lastInt = lastInt->nextNode;

現在、lastInt は NULL です

lastInt->nextNode = NULL;

現在、null ポインターを逆参照しており、例外が発生しています。else の後に lastInt を更新するべきではありません。

于 2012-12-19T04:57:25.057 に答える