delete和delete[]的区别
来源:互联网 发布:阿里云客服一个月工资 编辑:程序博客网 时间:2024/06/06 03:11
一般我们都知道delete和new配套使用,delete[]和new[]配套使用。
关于new[]和delete[],我们可以分两种情况:
(1)为基本数据类型分配和回收空间;
(2)为自定义类型分配和回收空间;
可以通过一段代码看清楚它们之间的区别:
class T {public:T() { cout << "constructor" << endl; }~T() { cout << "destructor" << endl; }};int main(){const int NUM = 3;T* p1 = new T[NUM];cout << hex << p1 << endl;// delete[] p1;delete p1;T* p2 = new T[NUM];cout << p2 << endl;delete[] p2;}
结果请自行验证(实践见真知)
由运行结果可以看出,delete p1在回收空间的过程中,只有p1[0]这个对象调用了析构函数,其他对象都没有调用自身的析构函数。如果用delete[],则在空间回收之前所有的对象都会首先调用自己的析构函数。
基本类型的对象没有析构函数,所以回收基本类型的数组空间用delete和delete[]都是可以的。
总结:new和delete、new[]和delete[]对应使用。
0 0
- delete和delete[] 的区别
- delete和delete[]的区别
- delete和delete[] 的区别
- delete和delete[] 的区别
- delete和delete[]的区别
- delete和delete[] 的区别
- delete和delete[]的区别
- delete和delete[] 的区别
- delete和delete[]的区别
- delete 和 delete []的区别
- delete和delete[] 的区别
- delete 和delete []的区别
- delete和delete[]的区别
- delete和delete[]的区别
- delete和delete[]的区别
- delete和delete[]的区别
- delete 和delete[]的区别
- delete和delete[] 的区别
- android:layout_gravity和android:gravity的区别
- ReactNative Demo - ImageVIew 使用
- 《创业》创业分析
- 整形数组合并
- linux常用命令
- delete和delete[]的区别
- 异构智能CEO吴韧:真正的AI是为了让生活更简单
- android开发命名规范
- windows下mongodb安装与使用整理
- LeetCode-1 Two Sum
- ReactNative Demo - NavigationView 使用
- 集合框架五(hashCode 与Collections)
- Android开发 二级筛选,常见的省市筛选问题
- 大端小端模式(俗称大尾小尾模式)