我了解了在malloc之后使用'免费',而不是在C中制作垃圾记忆。什么是回收?我查了一下但找不到任何代码。我得到的只是关于免费的解释..它们是一样的吗?
另外,在我的关于数据结构(一般线性列表)的书中,“Recycle是一个伪节点命令,用于将节点的空间返回到动态内存。”
非常感谢。
如果许可证有问题,我会弃掉图片。
答案 0 :(得分:1)
回收意味着释放未使用的内存,以便以后使用。
如果你继续malloc
- 没有free
,运行一段时间后,你的程序可能会占用GB的RAM,大部分是未使用的。直接后果可能是操作系统拒绝您的程序进一步malloc
请求,甚至导致整个系统负担沉重。
回收不是伪 - 代码。它的真实代码告诉操作系统" 不再使用此内存块。您可以将它分配给任何程序。"之后,系统可以再次管理这个特定的内存块,而不是浪费它。真正的代码是free()
,而回收只是计算机科学中使用的术语。
在效率方面,free
未使用的内存始终是一个好习惯。
答案 1 :(得分:-1)
我查看了您在Google图书中提到的短语。他们的意思是他们假设他们已经定义了一个函数或伪代码,void recycle(node * ploc),其中ploc是我们在链表中不再需要的节点。是的,它类似于在ploc上免费或删除。我们可以直接在当前函数中执行它,也可以在单独的函数中执行它,如recycle。