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

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

最佳答案

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

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

10-09 21:01