链接列表析构函数永远循环?

时间:2018-02-12 03:46:46

标签: c++ linked-list destructor dynamic-memory-allocation

所以我正在制作一个链表,除了列表的析构函数之外,关于它的一切都正如我所希望的那样工作:

alpha

当程序运行时,它会执行我需要的所有其他操作,但是当它试图调用它并结束程序时似乎无限期地在析构函数上循环。这是我在这里的第一个问题,而且我对这个整个编程问题都是新手,所以如果你需要再看一下我的程序代码来理解这个析构函数,我很乐意分享它!

1 个答案:

答案 0 :(得分:-2)

最好为PhoneNode添加析构函数,以便每个析构函数都删除其后继者。然后你根本不需要循环:

PhoneNode::~PhoneNode()
{
    delete next;
}

请注意,这会遍历整个剩余列表。

然后你的PhoneList析构函数看起来像:

PhoneList::~PhoneList()
{
    delete head;
}

请谨慎使用Delete(int id)方法,将您要删除的节点的next指针归零(如果它位于列表中间)(即它不是& #39; t已经为零)。否则你会失去列表的其余部分。