你好,我需要记录我的堆,但现在我只是想用我的函数重载'新'操作符。是否有可能获得由'new'分配的内存块大小?
我需要总结这是malloc的后增大了其内存实数字节()或堆*()或其他窗口MEM *函数
但现在我需要分析当前的堆实现。是否有可能得到像HeapAlloc()函数分配的块大小 - HeapSize()?
。
你好,我需要记录我的堆,但现在我只是想用我的函数重载'新'操作符。是否有可能获得由'new'分配的内存块大小?
我需要总结这是malloc的后增大了其内存实数字节()或堆*()或其他窗口MEM *函数
但现在我需要分析当前的堆实现。是否有可能得到像HeapAlloc()函数分配的块大小 - HeapSize()?
。
我可以看到您没有搜索文档。
编辑在反思,或许你问一个替代到HeapSize()
,你可以用,当你自己与new
进行分配。
答案是否定的。该标准分配例程没有什么抢有关内存块的信息,这是因为:
其实HeapSize()
是为Windows实现相关的功能做这个,但是当你执行HeapAlloc()
你只能使用它。
有[还非标准] _msize
可以与malloc
和朋友使用,但new
不得使用malloc
。
因此,我建议您只在自己的分配器中跟踪大小。
new可以通过使用HeapAlloc() – Sergey 2011-04-30 14:25:52
你知道块有多大,因为你首先要求一定的尺寸。 – 2011-04-30 14:16:34
是的,那是我现在正在开发 – Sergey 2011-04-30 14:25:02
...尽管分配器可能会返回比您要求的块更大的块,但我不知道是否有任何方法可以检测到该块。 – 2011-04-30 16:59:24