我知道,当我们在通过
我的问题是,
另一个相关的后续问题在这里提出:Does delete (non array form) know the total amount of memory allocated by either new or new[]
new[]
创建的指针上写 delete []
时,程序会查找数组的计算信息并找出数组元素的大小(一个计数器)。然后程序调用每个元素的析构函数。最后内存(哪些内存?)由名为 operator delete
的函数释放。我的问题是,
delete[]
是否会一次性释放由 new[]
表达式分配的整个内存,因为这些信息(总内存量)在所有元素被销毁之后才可用,还是会连续释放已调用析构函数的数组元素所占用的内存?另一个相关的后续问题在这里提出:Does delete (non array form) know the total amount of memory allocated by either new or new[]
free
需要知道malloc
返回的内存分配的大小吗? - Kerrek SBdelete
表达式的行为有任何规定? - Richnew
和非数组delete
混在一起,反之亦然,并且你希望不需要对这样的程序进行更改吗?否则,为什么不编写正确匹配的new
、new[]
、delete
、delete[]
,让编译器来处理呢? - PaulMcKenzie