首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

双链表删除操作时,free处弹出对话框,求解释多谢

2013-04-02 
双链表删除操作时,free处弹出对话框,求解释谢谢pgetnode(t,i)//getnode()为得到删除的i节点的前一个节点

双链表删除操作时,free处弹出对话框,求解释谢谢


        p=getnode(t,i);      //getnode()为得到删除的i节点的前一个节点
if(p==NULL)
printf("wei zi error a");
else
{
p->prio->next=p->next;
p->next->prio=p->prio;

free(p);   //运行完此句后,错误。其中i节点信息已删除,错误如下图
}


请问下面的话是什么意思啊?


Windows 已在 rr.exe 中触发一个断点。

其原因可能是堆被损坏,这说明 rr.exe 中或它所加载的任何 DLL 中有 Bug。

原因也可能是用户在 rr.exe 具有焦点时按下了 F12。

输出窗口可能提供了更多诊断信息。




[解决办法]
if(p==NULL)
printf("wei zi error a");
else
{
if(p->prio) //避免操作首结点之前
p->prio->next=p->next;
else
t = p->next;//删除首结点还要把首指针要后移
if(p->next) //避免操作尾结点之后
p->next->prio=p->prio;
free(p);
}

不能修改,发错了只得再回复一个,修改了点,删首结点时的问题

热点排行