有没有办法获取堆上先前分配的内存的大小?
例如:
//pseudo-code
void* p = operator new (sizeof(int) * 3);
unsigned size = getSomeHow(p);
最佳答案
你不能一直这样做,因为 operator new()
可以以任何合理的方式重载,甚至可能不使用运行时堆。
如果 operator new()
在 Visual C++ 中使用 malloc()
实现,您可以使用 _msize()
.
关于c++ - 了解堆上保留内存的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4068046/