|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 删除链表全部节点,并释放他们占用的内存
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
4199
人关注过本帖
标题:
删除链表全部节点,并释放他们占用的内存
只看楼主
加入收藏
达尔文
等 级:
论坛游民
帖 子: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
帖 子:2277
专家分: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
快速回复:
删除链表全部节点,并释放他们占用的内存
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.035700 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved