当前位置: 首页 > 工具软件 > delete > 使用案例 >

delete []

徐凌
2023-12-01
从历史角度来看,C++2.0之前,对于一个对象数组的释放,给delete[]添加一个数组的维度是程序员的责任,比如

A* a = new A[10];
delete [10] a;

在C++2.1以及之后,这个[10]中的数字可以省略,这归功于compiler对于数组维度的自动计算。但在那个年代,compiler的这个计算会产生很大的性能开销。如果对于

A* a = new A;
A* aa = new A[10];

都使用

delete [] a;
delete [] aa;

在第一种情况下,这种开销是多余的。因此,折衷方案是:让程序员自己判断要释放的是object还是object array,从而自己决定添加[]。因此这被一直保留到现在的C++ standard中。
 类似资料: