内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
delete
和delete[]
之间的区别是什么?
delete[]
运算符用于删除数组。delete
运算符用于删除非数组对象。它叫operator delete[]
和operator delete
函数分别删除数组或非数组对象在(最终)调用数组元素或非数组对象的析构函数后占用的内存。
以下是关系:
typedef int array_type[1]; // create and destroy a int[1] array_type *a = new array_type; delete [] a; // create and destroy an int int *b = new int; delete b; // create and destroy an int[1] int *c = new int[1]; delete[] c; // create and destroy an int[1][2] int (*d)[2] = new int[1][2]; delete [] d;