2d链表清单析构函数

时间:2017-04-04 14:09:07

标签: c++

我正在处理一个二维链表,每个链接列表指向右侧和底部,我的程序每次都崩溃说 抛出异常:读取访问冲突。 一个是0xCDCDCDCD。 第4行抛出异常,其中b = a-> next。

LinkedList::~LinkedList()
{
nodePtr a = head; 
nodePtr b = a->next;
nodePtr c = down;
nodePtr d = c->bottom;

while (a != NULL)
{
    nodePtr temp = a->next;
    nodePtr temp1 = c->bottom;
    delete a;
    delete c;
    a = temp;
    c = temp;
}

}

1 个答案:

答案 0 :(得分:0)

即使假设此代码正常工作(这意味着项目数量是偶数):

while (a != NULL)
{
    nodePtr temp = a->next;
    nodePtr temp1 = c->bottom;
    delete a;
    delete c;
    a = temp;
    c = temp1; // fixed definitely incorrect assignment
}

当满足ac指针时,您有一个未定义的行为,您开始删除已删除的节点。

所以,恕我直言的唯一方法是只在一个方向上删除节点(我选择正向)。