【发布时间】:2016-10-26 20:40:30
【问题描述】:
假设我有一个指向整数数组的指针,然后我想像下面那样删除它:
int * numbers = new int[10];
delete[] numbers;
delete 运算符如何知道数组 numbers 结束的位置以释放内存(因为据我所知,C++ 不跟踪数组的长度)?
谢谢!
【问题讨论】:
-
@GSerg 谢谢,它回答了我的问题。
假设我有一个指向整数数组的指针,然后我想像下面那样删除它:
int * numbers = new int[10];
delete[] numbers;
delete 运算符如何知道数组 numbers 结束的位置以释放内存(因为据我所知,C++ 不跟踪数组的长度)?
谢谢!
【问题讨论】:
它可以随心所欲。常用的方法有两种:
实现可以使用映射到其大小的已分配指针的关联数组。
实现可能会在开始时分配一些额外的字节来存储大小并将指向块的指针传递给调用者。
【讨论】: