+-
使用free()时,内存使用量不会减少
参见英文答案 > Does malloc reserve more space while allocating memory?                                    3个
我正在编写独立于操作系统的无锁队列,到目前为止它工作得很好,但内存管理存在小问题.我不确定它的gcc问题还是我的问题.问题:当元素添加到列表时,内存增加,但是当从列表中删除元素时(free(elementPointer);)内存使用不会改变.

但是当我使用pthreads时,N个生产者和M个消费者(1 如有必要,我可以发布代码.

GCC版本:4.4.3

最佳答案
在许多操作系统上,free()不会再次为操作系统提供内存,而是“仅”用于对malloc()的新调用.这就是为什么你没有看到内存使用量在外部下降的原因,但是当你通过线程增加新的分配数量时,内存会被重新使用,所以总使用量不会通过.
点击查看更多相关文章

转载注明原文:使用free()时,内存使用量不会减少 - 乐贴网