c++ - delete[] "know"操作数数组的大小如何?

标签 c++

Foo* set = new Foo[100];
// ...
delete [] set;

您不会将数组的边界传递给 delete[]。但是这些信息存储在哪里?标准化了吗?

最佳答案

当您在堆上分配内存时,您的分配器将跟踪您分配了多少内存。这通常存储在您分配的内存之前的“头”段中。这样,当需要释放内存时,解除分配器就知道要释放多少内存。

关于c++ - delete[] "know"操作数数组的大小如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/197675/

相关文章:

c++ - 我可以获取标准库中定义的函数的地址吗?

c++ - 两次删除函数声明的区别

c++ - 自制网络爬虫的问题

c++ - 硬件断点 EXCEPTION_SINGLE_STEP 始终

c++ - 为什么使用 fopen 打开流并使用读/写(而不是 fread/fwrite)执行 I/O

C++ - if 语句简化

c++ - C 预处理器字符串化中的额外间接性有所不同

c++ - 错误 : 'argument' does not name a type, 假设 .cpp 和 .h 文件有问题

c++ - 为什么编译器不解析对模板函数的调用?

c++ - 是否可以获得窗口标题栏的高度?