搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 删除链表全部节点,并释放他们占用的内存
标题:
删除链表全部节点,并释放他们占用的内存
只看楼主
达尔文
等 级:
论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:4
删除链表全部节点,并释放他们占用的内存
for(p = first; p != NULL; p = p->next) //此循环错误 原因:执行对下一个节点将有一个未定义的效果(大概意思)
free(p);
正确答案: struct node *temp;
p = first;
while(p != NULL){
temp = p; //这是主要与上面的不同点,那么它存在的必要是什么呢?
p = p->next;
free(temp);
}
求指教
搜索更多相关主题的帖子:
正确答案
2015-11-09 22:17
林月儿
来 自:湖南
等 级:
版主
威 望:
138
帖 子:2276
专家分:10647
注 册:2015-3-19
第
2
楼
得分:5
正确答案: struct node *temp;
p = first;
while(p != NULL){
temp = p; //这是主要与上面的不同点,那么它存在的必要是什么呢?
p = p->next;
free(temp); //这是也是主要与上面的不同点
}
剑栈风樯各苦辛,别时冰雪到时春
2015-11-09 22:22
达尔文
等 级:
论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
第
3
楼
得分:0
回复 2楼 林月儿
为什么直接释放p不可以呢?那个原因始终无法理解. 求指点
能有一件喜欢的事很不容易,就坚持下去吧.....
2015-11-09 22:39
azzbcc
来 自:江西财经大学
等 级:
贵宾
威 望:
81
帖 子:3293
专家分:12919
注 册:2012-11-4
第
4
楼
得分:15
想一想当 p 被释放后,访问 p->next 会得到什么
[fly]存在即是合理[/fly]
2015-11-10 17:45
达尔文
等 级:
论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
第
5
楼
得分:0
回复 4楼 azzbcc
soga
能有一件喜欢的事很不容易,就坚持下去吧.....
2015-11-10 23:07
5
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-459044-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.017967 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved