以下是我的原帖: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. ***
}
答案 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。