我有一些研究要做即将进行的C ++评估,我的deleteNode函数有问题。我知道问题出在函数内部,因为我复制了以前的deleteNode函数并且工作正常。我所有其他的pushback / pushfront函数都运行正常,我宁愿知道问题而不是忽略它但我可以&#39发现它是为了我的生命。
因此,链表存储了Employees,其名称(字符串)和工资(double)。我的deleteNode匹配员工的姓名和传入的字符串参数。如果有人能发现我的错误,那将对我的学习有很大的帮助!
bool EmployeeList::deleteNode(std::string n){
EmployeeNode *leadptr = head, *trailptr = nullptr;
if (head != nullptr){
if (head->emp.name == n){
head = head->next;
delete leadptr;
return true;
}
else{
while (leadptr != nullptr && leadptr->emp.name != n){
trailptr = leadptr;
leadptr = leadptr->next;
}
if (leadptr = nullptr){
return false;
}
else{
trailptr->next = leadptr->next; //access violation here, leadptr may be null
delete leadptr;
return true;
}
}
}
}
答案 0 :(得分:1)
这是作业
if (leadptr = nullptr){
更正将是
if (leadptr == nullptr){