永发信息网

求问链表的内存释放问题

答案:6  悬赏:80  手机版
解决时间 2021-11-23 01:51
求问链表的内存释放问题
最佳答案
这段小程序是正确的:
temp指向头第一个节点;
让node指向下一个节点;
释放temp所指向的第一个节点;
再重复;
问题出在你对指针的认识上:
free(temp); 所指向的一个节点空间*temp 被释放;temp值虽是无用的了,但并影响下面;
temp=node; temp与node同时指向下一个将要释放的节点上,这里完全正确;
你的认识问题就出在这!!!
解释二: 释放后,不需要 temp=NULL; 虽temp是野指针,你只要不去访问 *temp单元就没事。
-----------------------------------------------------------------------------
我发现你指针的概念很乱!
原话1:刚释放的节点又指向了它的下一个节点,这跟没释放时有什么区别?链表的前后连接关系完全没有改变,更没有被消灭! --> 这是我的第一个疑问,希望高手给予指点。
temp 指向的单元 *temp释放了, 但temp本身仍存在的,只不过野指针罢了,不要混淆:*temp与temp的概念区别;
全部回答
使用free();释放函数就行了
可以建立一个函数专门释放内存
[temp=node表示刚刚被释放的temp(指向随意)现在又指向了node(这时的node正是下一个呆释放的节点)]这里没有错。
[换句话说,刚释放的节点又指向了它的下一个节点,这跟没释放时有什么区别?]temp只是一个指针变量而已,它存储的只是地址,而非链表项。所以这句话有点问题。
[链表的前后连接关系完全没有改变,更没有被消灭!] 这要看你怎么理解了。释放一个链表主要的目的是为了内存的从新利用。free掉的内存里的内容是没有改变的(基本上是这样的)。所以里面的内容还是原来的。但是,这些内容是没有保护的,处于随时可用的状态(可用是指这块内存,而非里面的内容)。
第二问:单个空间的定义是什么呢?int大小的空间,还是char大小呢,还是指针类型本身的空间大小。不同的指针类型(数据类型),free释放的空间大小是不同的。

[比如告诉我链表需要一个节点一个节点地free。]我还真的想这么说的。链表各个节点的内存地址不一定是连续的,而且你也应当把它当成是不连续的,这是链式结构和数组的本质上的不同,所以了,各个节点之间的地址不连续,也就只能一个一个去free了。不过你也可以写个函数专门来释放链表,这样不就有了可以释放链表的free函数了吗。free使用来对应malloc的。你写个list_free来对应list就好了。别纠结在这种地方了。

哦,如果你要完全清除的话用memset函数在free前将节点内容置0就好了(全部内容,包括next指针)。
小子是大一还是大二呢
你对指针的理解有问题,temp只是个临时变量,你所说的temp=node表示刚刚被释放的temp(指向随意)现在又指向了node,不对,此时temp是指向随意,但是temp=node只是让temp指向node而已,相当于初始化一个指针,这里可以看出你对指针的理解有问题。另外如果要temp=NULL ,应加在在free之前。
1、temp是一个给定类型的指针,执行temp = node;的操作,是将指针temp指向node指向的内容,只要类型匹配,无论temp事先指向哪儿,经过赋值操作后,就会无条件地指向给定的地方。
2、经过给出代码的释放操作,会释放所有结点占用的动态内存,包括头结点head,既然结点占用的内存已经还给系统了,该结点也就不复存在了,是否执行head = NULL操作,要看编程这自己的意愿,个人意见是,没必要多此一举,既然自己亲手释放了,再去操作不存在的结点就是“人”出问题了,而不是“野”指针的过错。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
这是个什么破石头?
如何戒掉玩手机的习惯
跑了5万公里,保险11到期,得自己买保险1万元
SQLserver什么时候会用到派生表
诈骗车和钱被抓了车还了如果判刑了还要赔钱吗
电介质的常用
快递提前签收
武进吾悦广场到丽华怎么坐公交车
散瞳验光的散瞳验光方法
请问天津夜生活最爽的地方是那里
绍兴哪几家餐馆适合聚会?
白菜猪肉姣子怎么做视
zb一bvr与zr一bvr的区别
艾条价格是多少 艾条有什么作用
请问无所不能的京东能配送海鲜吗
推荐资讯
青岛钱古宾馆地址好找么,我有些事要过去,
全网通4G wifi5g 运行内存不低于2G的手机
怎么用QQ旋风下载qq邮箱邮件
公安部139号令左手大姆指缺失可以考驾照不
男子高中生的日常第五集问小苹果借东西然后打
曾经取代LV,Gucci的BV为什么持续失势
《雷神3》百度云--谢谢
斑马888TT一打印东西切换为脱机状态,怎么回
桥梁景观装饰对城市美学的重要性有哪些?
形容口语表达的成语
秀秀茶室地址在什么地方,我要处理点事!
赶黄花能与绿茶齐泡吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?