我有许多数据结构(树、队列、列表),它们是使用动态分配例程(malloc、calloc)创建的。在某些临界条件下,程序应该终止。遍历所有对象以释放它们的内存需要很长时间。
在程序停止之前避免遍历所有数据结构是否安全?如果是,它是否适用于所有操作系统和环境(例如多线程)?
最佳答案
一个进程动态分配的所有内存都会在进程终止时释放回操作系统,这与有意或通过崩溃无关。文件和套接字也会发生同样的情况——内核中的引用计数会减少,如果没有更多引用,资源就会被释放。
上述情况的一个异常(exception)可能是共享内存。
关于C - 显式内存回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8010016/