C - 显式内存回收

标签 c memory-management dynamic

我有许多数据结构(树、队列、列表),它们是使用动态分配例程(malloc、calloc)创建的。在某些临界条件下,程序应该终止。遍历所有对象以释放它们的内存需要很长时间。

在程序停止之前避免遍历所有数据结构是否安全?如果是,它是否适用于所有操作系统和环境(例如多线程)?

最佳答案

一个进程动态分配的所有内存都会在进程终止时释放回操作系统,这与有意或通过崩溃无关。文件和套接字也会发生同样的情况——内核中的引用计数会减少,如果没有更多引用,资源就会被释放。

上述情况的一个异常(exception)可能是共享内存。

关于C - 显式内存回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8010016/

相关文章:

c - 如何在 printf 中处理 float/double 到 int 的转换?

在 C 中更改二进制地址中的一个给定位

c++ - C++中学生指针节点列表中的内存泄漏

php - 进入动态领域的更好方式?

C 语言中关于字符串的困惑

c - 在 C 的 OpenGL 中加载 .obj

c - 使用#include“unit.c”使包含的任何子单元均可访问数组吗?

c - 结构和内存分配

c - 在结构内部,如何定义与结构本身类型相同的结构数组(动态)

java - 服务器端编译和运行语言