【问题标题】:Linked List Destructor - I have looked at previous posts. Still having problems :(Linked List Destructor - 我看过以前的帖子。还是有问题:(
【发布时间】:2014-11-14 05:54:45
【问题描述】:

这是我对链表的声明:

// linked list of links
struct LinkedNode {
    Linked data;
    LinkedNode* next;

LinkedNode (const Linked& link); //ignore, not a concern at them moment
};

LinkedNode* firstLink;
LinkedNode* lastLink;

这是我的析构函数实现:

Portion::~Portion(){
while(firstLink != NULL){
    LinkedNode *temp = firstLink;
    firstLink = firstLink->next;
    delete temp;
}
lastLink = NULL;
}

我不明白为什么会出现分段错误。我试图删除 lastLink 和 firstLink 然后单独删除。我也做了同样的事情,但也将它们设置为 NULL。我错过了什么吗?

【问题讨论】:

  • 我看不出你发布的小代码有什么明显错误。
  • 你能发布足够多的代码来演示这个问题吗(最好是一个完整的、独立的测试用例)?你发布的sn-p没有明显的问题,所以问题可能出在你没有发布的代码上。
  • 尝试创建一个最小的例子,见stackoverflow.com/help/mcve。这样做可能已经告诉您问题出在哪里。
  • 崩溃发生在析构函数中并不意味着析构函数本身有问题。实际上,它看起来不错。问题在别处。这可能有数百种不同的原因导致崩溃,但无法从您发布的内容中判断。对于初学者来说,告诉我们哪条线路崩溃是个好主意。
  • Linked 的析构函数中有什么?

标签: c++ linked-list destructor


【解决方案1】:

问题不是析构函数。我只是被说服了。我会回顾一下我的程序的其余部分。

【讨论】:

    猜你喜欢
    • 2014-09-17
    • 2011-07-08
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    相关资源
    最近更新 更多