博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
delete 与 delete []
阅读量:5265 次
发布时间:2019-06-14

本文共 748 字,大约阅读时间需要 2 分钟。

/* Module:		delete与delete[]的区别.cpp Notices:		Copyright (c) 2017 Landy Tan*/#include 
using namespace std;class CT{public: inline CT(){ cout << "CT()" << endl; } inline ~CT(){ cout << "~CT()" << endl; }};int main(){ const unsigned short nArrayLen = 5; int *pnArray = new int[nArrayLen]{0}; delete pnArray; // *(pnArray + 1) = 100; 程序崩溃。因为这一块内存已经被释放了 // delete []pnArray; 对于普通数据类型而言,delete与delete[]效果是一样的 pnArray = NULL; CT *c = new CT[nArrayLen]; // delete c; 释放的是第一个元素的。而不是全部 delete []c; // 释放所有的元素 c = NULL; system("pause"); return 0;}// End of File //

 

 

结论:

  1、对于普通数据类型无论是delete或是delete[],其功能都是一样的。

  2、如果是自定义数据类型,delete释放的是下标为0的首元素的内存空间,而不是整个数组。delete[]释放的才是整个数组的空间!

  3、

转载于:https://www.cnblogs.com/LandyTan/p/6822369.html

你可能感兴趣的文章
Saltstack远程执行(四)
查看>>
git 本地分支与远程分支
查看>>
vim常用快捷汇总
查看>>
js基础第四天
查看>>
设计模式-代理模式
查看>>
小问题?
查看>>
Maven教程
查看>>
Crontab Build_setting的定期检查
查看>>
HTML5简单入门系列(三)
查看>>
.Net 中显式实现接口
查看>>
设计模式之工厂方法模式
查看>>
妙趣横生算法 6:希尔排序
查看>>
[导入][幻想情侣][2008热播韩剧][全16集+OST][韩语中字]
查看>>
Divide Two Integers
查看>>
Top K Frequent Words
查看>>
Qt 从菜单栏打开文件
查看>>
linux下fms2流媒体服务器搭建
查看>>
目前为止用过的最好的Json互转工具类ConvertJson
查看>>
Pass的通用指令开关
查看>>
[Linux内存]linux内存学习(二)——分段和分页
查看>>