链表"exception thrown"



我正在为学校开发这个链表程序,当我尝试运行我的程序时,我收到这条消息,上面写着"抛出异常:读取访问冲突,学生是 nullptr"。 这是我的主要功能是找到"学生">

int main() {
ifstream datafile;
list studentinfo;
list::node *student = NULL;
list::nodePtr head = NULL;
list::node nodeinfo[10];
datafile.open("Z:\CS246\Linked_List_Final\studentdata.txt");
if (!datafile)
{
cout << "Error!!";
exit(1);
}
for (int i = 0; i < 10; i++) {
datafile >> nodeinfo[i].name >> nodeinfo[i].id >> nodeinfo[i].gpa;
studentinfo.addNode(&student, student->id);
}
list displayList(studentinfo);
string choice, ans;
int pos;
cout << "Would you like to delete a node? If so type yes:";
cin >> choice;
if (choice == "yes" || choice == "Yes") {
do {
cout << "Type the postion of the node you would like to delete";
cin >> pos;
studentinfo.deleteNode(pos);
cout << "Is there another node you would like to delete?";
cin >> ans;
} while (ans == "yes" || ans == "Yes");
}
system("pause");
return 0;
}

如果我需要发布其余代码,请告诉我。

studentinfo.addNode(&student, student->id);

在这里,您尝试取消引用student,即使其值为 nullptr。在这样做之前,您需要为其分配一些值。也许您正在寻找nodeinfo[i].id

studentinfo.addNode(&student, student->id);

是否使此时当您尝试访问学生时没有实例化 (->(? 无法访问 nullptr。

您将学生指针设置为 null,然后尝试访问 student->id,但它只有 null 的值。

List::node * student = NULL;
...
student->id

空取消引用。

相关内容

  • 没有找到相关文章

最新更新