编程论坛
注册
登录
编程论坛
→
数据结构与算法
单链表中删除结点一定要用free么
不同认为
发布于 2015-12-13 09:56, 3949 次点击
比如用s保存要被删除的结点p,那么s=p,p=p–>next,一定要在写一句free(s),才算把结点删除掉了么
4 回复
#2
未来大仙
2015-12-15 22:07
你知道free 有什么用吗?
#3
不同认为
2015-12-16 09:34
回复 2楼 未来大仙
释放空间 释放掉的同时 它所指向的内容是被清空了还是什么
#4
wengbin
2015-12-16 10:43
free释放的是内存空间,你的s和p应该是指向节点的指针吧?free(s)将释放s指向的内存空间,也就是说,这时s还是存在的,而且存的地址没变,但这时s指向的内容已经不存在了或者说不知道指向的内容是什么,这是很危险的,所以一般用free()后还要向s指向NULL,避免野指针的出现
#5
未来大仙
2015-12-17 10:06
回复 3楼 不同认为
既然你知道,如果不释放已经不使用的空间 后果会怎么样?
1