C程序单链表的撤消问题

以下是<数据结构>清华大学出版社王伟军主编的书上的一个单链表的撤消函数我不理解,希望高手帮忙看看,很抱歉,我分不多.voidDestroyList_L(LinkList&... 以下是<数据结构>清华大学出版社 王伟军主编的书上的一个单链表的撤消函数
我不理解,希望高手帮忙看看,很抱歉,我分不多.
void DestroyList_L(LinkList &L)
{
LinkList p,p1;
p = L;
while(p)
{
p1 = p;
p = p ->next;
free(p1);
}
L =NULL;
}

我认为这个函数至少有两个错误, 但这本书看起来不应该有问题啊,清华大学出版社的呀!
还请高手确认,是我理解错了,还是真的书上就错了.
1, p = p->next 应该是指针才可以这样用,但是从代码看,p不是指针.
2, free(p1)能起到作用吗?它 free的只是p的一个拷贝吧.(p1=p)
就好象int i=100; int *p=&i;
int *q;
q=p;
free(q);难道这样就可以释放p吗?

谢谢回答!
展开
 我来答
百度网友1e3176a03
2010-11-12 · TA获得超过2637个赞
知道小有建树答主
回答量:1144
采纳率:100%
帮助的人:1493万
展开全部
1, p = p->next 应该是指针才可以这样用,但是从代码看,p不是指针.

LinkList p,p1;//请给出LinkList的定义,如果不是指针型的话,你的怀疑就是正确的。

2, free(p1)能起到作用吗?它 free的只是p的一个拷贝吧.(p1=p)

这个是没有问题的,free释放的p1因为和p是指向同一块地址,所以是OK的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式