c - 回收动态内存是什么意思?

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

我了解了“free”,它在 C 语言中 malloc 之后使用,不会产生垃圾内存。什么是回收?我查找了它但找​​不到任何代码。我得到的只是关于免费的解释。它们是一样的吗?

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

非常感谢。

this is the diagram

如果许可证有任何问题,我将丢弃该图片。

最佳答案

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

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

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

就效率而言,释放未使用的内存始终是一个好习惯。

关于c - 回收动态内存是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47344356/

相关文章:

data-structures - 在 O(1) 时间内删除集合中小于或等于 x 的所有元素的数据结构

python - 使用字典的子字典中的值创建新键

c++ - 如何将字符串复制到新分配的内存中?

c - 如何用BST制作交互式程序? C郎

c - 在 c 中扩展图形结构

C 嵌入式自动单元测试生成

清零 vmalloc 区域时 Linux 崩溃

c - `malloc()` 刚刚分配的内存内容是什么?

c - 如何将两个数组一起排序,其中第一个数组使用冒泡排序进行排序?

编译 c 源代码时找不到 -lagent(不兼容的库)