У меня есть исследование, которое нужно сделать для предстоящей оценки C++, и у меня есть проблема с моей функцией deleteNode. Я знаю, что проблема находится где-то внутри функции, когда я скопировал предыдущую функцию deleteNode, и она отлично работала. Все мои другие функции pushback/pushfront работают нормально, я лучше знаю проблему, чем просто игнорировать ее, но я не могу ее заметить. для жизни меня.Исключение функции исключения связанного списка
Таким образом, связанный список хранит сотрудников с именем (строкой) и зарплатой (двойной). Мой 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;
}
}
}
}
'если (leadptr = nullptr)' Вы должны '' == здесь. – Maroun
_ @ Mark Lordan_ Это может быть легко обнаружено при компиляции с включенными предупреждениями или, по крайней мере, при чтении этих предупреждающих сообщений. –
@ πάνταῥεῖ Я не получил никаких предупреждающих сообщений, просто нарушение доступа без какой-либо полезной информации. Не могли бы вы объяснить, как я могу получить эти параметры предупреждения? – Mark