这是堆碎片的标志吗?

jma*_*erx 2 c++

为了测试我的对象是否有内存泄漏,我将其实例化10000次并将其删除10000次.之后,我的程序使用了大约500kb.我不认为我的物体在泄漏.

谢谢

Nem*_*emo 6

至少在Linux上,C库不会因为你的调用而将内存释放回操作系统delete.它将内存放在进程内的"空闲列表"中.因此,如果您使用类似topcat /proc/XXX/status测量虚拟内存使用的命令,您将看到进程中所有内容消耗的大小,包括该空闲列表.

当您freedelete"大"对象时,C库仅将内存释放回系统."large"的定义类似于128K字节.

我怀疑Windows,Mac等工作方式相似,但我不确定.

所以对你的问题的简短回答是"不,不一定".