更新的程序仍然崩溃,似乎无法找到解决方案?

时间:2012-12-19 04:37:01

标签: c++

以下是我的原帖:Program crashes after opening file

我一次又一次地尝试修复我的代码,但它仍然无法崩溃或无法控制地运行。我还没有找到解决方案。

这是我更新的代码:

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. ***
}

1 个答案:

答案 0 :(得分:2)

问题是你要更新lastInt两次:

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;

现在你取消引用空指针并导致异常。 你不应该在else之后更新lastInt。