【问题标题】:How does delete[] know the array length in C++? [duplicate]delete[] 如何知道 C++ 中的数组长度? [复制]
【发布时间】:2016-10-26 20:40:30
【问题描述】:

假设我有一个指向整数数组的指针,然后我想像下面那样删除它:

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

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

谢谢!

【问题讨论】:

  • @GSerg 谢谢,它回答了我的问题。

标签: c++ arrays


【解决方案1】:

它可以随心所欲。常用的方法有两种:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-20
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多