编程论坛's Archiver

redice 发表于 2008-3-25 12:02

【求助】销毁链表出错了?

【求助】销毁链表出错了?
带头节点的单链表

[color=Red]//销毁链表
int DestoryList_L(LinkList &L)
{
        LinkList p,q;
        p=L;
        while(p)
        {
        q=p;
                p=p->next;
                free(q);
        }
        return 1;
}[/color]

[attach]33227[/attach]

redice 发表于 2008-3-25 12:03

请高人指点!

sunkaidong 发表于 2008-3-25 12:13

是不是要断开连接之后再销毁。。。要不你把你程序贴完整。。

happyboe 发表于 2008-3-25 17:39

int DestoryList_L(LinkList &L)
{
    LinkList p,q;
    p=L;
    while(p)
    {
        q=p;
        p=p->next;
        free(q);
    }
    return 1;
}
把你的LinkList的定义贴出来,感觉应该是因为你把引用和指针混用造成的,free(void *memory)需要以指针作为其参数。lz仔细检查一下你的LinkList定义的到底是节点还是指向节点的指针。

jamesbind 发表于 2008-3-25 23:36

把 &改成*

redice 发表于 2008-3-26 11:03

//单链表节点
typedef struct LNode{
        ElemType data;     //单链表节点的数据域
    struct LNode *next;//单链表节点指针域,指向下一个节点
}LNode,*LinkList;

happyboe 发表于 2008-3-26 16:31

把 int DestoryList_L(LinkList &L)中的“&”去掉应该就可以了

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.