你好,我需要记录我的堆,但现在我只想用我的函数重载"new"运算符。
我需要总结在 malloc() 或 Heap*() 或其他 windows mem* 函数之后增加的内存的实际字节数
但现在我需要分析当前的堆实现。是否有可能获得像 HeapAlloc() 函数分配的 block 大小 - HeapSize() ?
.
最佳答案
我看你没有搜索文档。
编辑 回想起来,也许您正在寻求 HeapSize()
的替代方案,您可以在使用 新
。
答案是否定的。标准分配例程没有任何关于内存块的信息,因为:
- 这高度依赖于实现,并且
- 您已经知道 block 大小(因为您首先指定了它),那么膨胀的意义何在?
事实上,HeapSize()
是 Windows 的执行相关函数,但您只能在执行 HeapAlloc() 时使用它
。
还有[非标准] _msize
可以与 malloc
和 friend 一起使用,但是 new
可能不会使用 malloc
。
因此我建议您自己在分配器中跟踪大小。
关于c++ - 是否有可能获得由 'new' 分配的内存块大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5842296/