双链表删除操作时,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节点信息已删除,错误如下图
}
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);
}