gpt4 book ai didi

c++ - 我的链表的 Erase() 函数中的错误

转载 作者:行者123 更新时间:2023-11-30 05:16:49 26 4
gpt4 key购买 nike

我正在尝试通过一个测试程序,并且我通过了所有测试,除了涉及到我的删除功能时,程序崩溃了。

我最好的猜测可能是前面或后面的哨兵节点正在被删除。或内存泄漏。

最佳答案

我怀疑有人愿意阅读所有这些代码并为您找到错误,尤其是在没有 MCVE 的情况下。 .乍一看,函数 void erase(iterator it)

明显有问题

left->next_ = right;

right->prev_ = left;

您没有检查 right 或 left 是否为 null,如果您在列表的开头或结尾删除,则会发生这种情况。您还应该相应地修改列表的 front_back_

您可以在这些作业之前添加检查:

if(left)
left->next_ = right;
else
front_ = right;

if(right)
right->prev_ = left;
else
back_ = left;

关于c++ - 我的链表的 Erase() 函数中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42464780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com