我正在处理一个二维链表,每个链接列表指向右侧和底部,我的程序每次都崩溃说 抛出异常:读取访问冲突。 一个是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;
}
}
答案 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
}
当满足a
和c
指针时,您有一个未定义的行为,您开始删除已删除的节点。
所以,恕我直言的唯一方法是只在一个方向上删除节点(我选择正向)。