delete []如何知道C ++中的数组长度?

时间:2016-10-26 20:40:31

标签: c++ arrays

想象一下,我有一个指向整数数组的指针然后我想删除它,如下所示:

int * numbers = new int[10];
delete[] numbers;

删除运算符如何知道数组数字的结束位置以释放该内存(因为据我所知,C ++不会跟踪数组的长度)?

谢谢!

1 个答案:

答案 0 :(得分:2)

它可以做它想要的。有两种常见的方式:

  1. 实现可以使用映射到其大小的已分配指针的关联数组。

  2. 实现可以在开头分配一些额外的字节来存储大小,并将指针传递给调用者的块。