回收动态内存意味着什么?

时间:2017-11-17 06:13:51

标签: c data-structures dynamic-memory-allocation recycle

我了解了在malloc之后使用'免费',而不是在C中制作垃圾记忆。什么是回收?我查了一下但找不到任何代码。我得到的只是关于免费的解释..它们是一样的吗?

另外,在我的关于数据结构(一般线性列表)的书中,“Recycle是一个伪节点命令,用于将节点的空间返回到动态内存。”

非常感谢。

this is the diagram

如果许可证有问题,我会弃掉图片。

2 个答案:

答案 0 :(得分:1)

回收意味着释放未使用的内存,以便以后使用。

如果你继续malloc - 没有free,运行一段时间后,你的程序可能会占用GB的RAM,大部分是未使用的。直接后果可能是操作系统拒绝您的程序进一步malloc请求,甚至导致整个系统负担沉重。

回收不是 - 代码。它的真实代码告诉操作系统" 不再使用此内存块。您可以将它分配给任何程序。"之后,系统可以再次管理这个特定的内存块,而不是浪费它。真正的代码是free(),而回收只是计算机科学中使用的术语。

在效率方面,free未使用的内存始终是一个好习惯。

答案 1 :(得分:-1)

我查看了您在Google图书中提到的短语。他们的意思是他们假设他们已经定义了一个函数或伪代码,void recycle(node * ploc),其中ploc是我们在链表中不再需要的节点。是的,它类似于在ploc上免费或删除。我们可以直接在当前函数中执行它,也可以在单独的函数中执行它,如recycle。