99问答网
所有问题
求问个c语言问题,删除链表节点的时候 为什么要释放被删节点,不释放也不影响呀
如题所述
举报该问题
推荐答案 推荐于2018-04-06
如果不释放的话会造成内存泄露。
比如一个业务逻辑中需要不断的增加节点,并不断的删除节点,如果不释放节点的内存空间的话,假设每个节点占内存8字节,那么这个块逻辑执行足够多次数,内存就放不下了。这就是隐患了。
(尤其处理的数据量级较大时,这个问题会比较明显)
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/XWvvvetevOOtjejttB.html
其他回答
第1个回答 2015-02-08
就像家里垃圾一样,不扔了,不是占用空间,碍事么
相似回答
为什么
单
链表
中进行删除结点操作后一定
要释放被删除
结点的空间?
答:
不释放的话造成内存泄露
,简单地说,就算操作系统分配到你程序的那部分内存实际已经没用了,但你还没还给操作系统。久而久之,内存就被你这样占满了。
为什么
动态
链表
需要
释放
呢??
答:
一般没什么大后果,因为你用的是小程序,开的比较小。因为这里的空间就是内存空间,如果不断申请的话,会占用大部分内存。如果
不释放
的话,就一直占用内存,使内存减小。当然你重启电脑后,就会释放的。
c语言什么时候
该
释放链表节点,
有时候又不用
答:
当你不需要用的时候最好都释放掉,有些程序虽然没有释放也无所谓,但不是一个好习惯
,如果一直不释放,慢慢积累就会耗尽内存,当然我们平常写的小程序是看不到这种情况。
C语言
:
删除单链表的
话是用free()吗?头结点
释放
了就行了吗?谢谢啊_百度...
答:
当然要逐个free。因为每一个节点都是申请出来的,当用完了要释放。不能只释放头节点,
那样就是内存泄漏
。
c语言链表删除节点
不用free的后果
答:
只要保证指针指向正确,对链表结构应该不会有
什么影响
~不过malloc分配的内存是在堆区,如果
不释放
的话整个程序运行期间它都会存在的。为了内存合理利用最好是free
C语言链表删除
元素
问题
答:
这样会让原本指向第一个节点的head指针指向第二个节点。单向链表里面,如果已经没有指针指向第一个节点,程序员就不能再访问第一个节点。但那个节点还是在内存中占用空间。要删除的话正确的做法是先Node* temp = head;再head = head->next;最后delete temp;不然的话可能会
内存泄漏
。
C语言
释放节点的问题
答:
没看太看懂你的
问题,
你的指向链表下一个数据就是删除吗,还是有其他操作时用来
删除,
你free的是哪个一个,如果是“6”这个
节点的
数据话,你已经删除掉了,指向的目标已经为空了,是无法释放掉的。如果是建立链表没有逻辑错误的话,首端第一
个链表
数据地址指针变量指向下一个链表数据的地址,以此类推...
C语言
删除
某
个节点
后,主函数内输出的动态
链表不
变
答:
照你这个代码逻辑,当你删除的是头结点
的时候,
确实对原
链表不
会产生
影响,
如果不是,那我暂时也看不出来,代码量太大,我也没法调
单
链表删除节点
操作
为什么被删
的节点中的数据要放在e里面?
答:
这句话跟删除节点没有关系,而是为了获取
被删除节点
中的data值,e作为入参,将data的值返回到函数之外。
大家正在搜
删除链表的倒数第n个节点c语言
c语言链表删除指定值的节点
c语言动态链表节点的删除
c语言 链表如何删除指定节点
c语言删除链表节点
c语言单链表删除节点
c语言删除链表值为0
单链表的删除算法c语言
c语言动态链表的删除
相关问题
c语言单链表删除节点有什么问题吗,删不了啊,只是要删除的跑到...
C语言链表问题,要求删除链表里某个范围值内的节点
c语言链表节点删除问题一般要分情况讨论么
数据结构(C语言版)中的删除链表中的一个节点
c语言链表删除节点 不用free的后果
c语言什么时候该释放链表节点,有时候又不用
C语言程序问题,运行到了删除的那个部分强制终止,从文件中获得...
c语言带空头结点的单链表删除 free(p)后为什么还要p=...