c++ - delete 使用的已分配内存的计数在内存中的确切位置?

标签 c++ memory new-operator allocation delete-operator

int* Array;

Array = new int[10];

delete[] Array;

delete 知道分配内存的计数。我用谷歌搜索它存储在内存中,但它依赖于编译器。无论如何都可以使用获取此计数吗?

最佳答案

实际上,堆知道每个分配有多大。但是,这不是您可以轻松访问的东西,并且只能保证大于或等于请求的数量。有时为了字节对齐的好处分配更多。

正如 Ben 所说,在某些情况下,实现确实知道数组中有多少对象,以便可以调用它们的析构函数。

关于c++ - delete 使用的已分配内存的计数在内存中的确切位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6239721/

相关文章:

c++ - 堆栈粉碎/回溯

c - 使用 C,如何访问与另一个 C 程序相同的内存块?

c++ - QFileDialog内存泄漏?

.net - 托管 (.net) 应用程序中内存泄漏的最常见(并且经常被忽视)的原因是什么?

c++ - 当分配返回 0 时,带有空异常规范调用构造函数的 operator new

c++ - 解析包含处理指令的 XML

c++ - 为什么复制赋值运算符必须返回引用/常量引用?

c++ - double 的高性能加法和乘法的常量形式

c++ - 全局 new 和 delete 运算符的定义

c++ - 内存通过 new[] 泄漏而无需调用 new