/*
Module: delete与delete[]的区别.cpp
Notices: Copyright (c) 2017 Landy Tan
*/ #include <iostream>
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、

delete 与 delete []的更多相关文章

  1. 【转】 C++中delete和delete[]的区别

    一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论.做个备份,以免丢失. C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete ...

  2. C++:delete和delete[]释放内存的区别

      C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[].  关于 new[] 和 delete[], ...

  3. C++中delete和delete[]的区别

    C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]. 关于 new[] 和 delete[],其中又 ...

  4. 关于delete和delete[]

    [精彩] 求问delete和delete[] 的区别??http://www.chinaunix.net/jh/23/311058.html C++告诉我们在回收用 new 分配的单个对象的内存空间的 ...

  5. svn local delete, incoming delete upon update 解决办法

    经常有人会说,树冲突是很难解决的一类冲突,其实一旦了解了其原理,要解决也不难.先回顾下对于树冲突的定义.     树冲突:当一名开发人员移动.重命名.删除一个文件或文件夹,而另一名开发人员也对它们进行 ...

  6. C++中delete 和delete[]的区别

    c++告诉我们在回收new分配的单个对象的内存空间的时候用delete,   回收new[ ]分配的一组对象的内存空间的时候用 delete[ ]; #include <iostream> ...

  7. C++ delete 和 delete []

    C++ delete 和 delete [] 简单结论: new delete new [] delete []   文章 : 对 delete [] 的声明 void operator delete ...

  8. 为什么new的普通数组用delete 和 delete[]都能正确释放

    由同事推荐的一篇博客: 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-------_CrtMemBlockHeader 文章解释了delete 内 ...

  9. C++ 中 delete 和 delete[] 的区别

    一直对 C++ 中 delete 和 delete[] 的区别不甚了解,今天遇到了,上网查了一下,得出了结论.做个备份,以免丢失. C++ 告诉我们在回收用 new 分配的单个对象的内存空间时用 de ...

  10. svn conflicts: local delete, incoming delete upon update

    svn  st查看更新的时候发现存在conflicts,提示很多 local delete, incoming delete upon update , $:svn st ? C IMIRROR.T3 ...

随机推荐

  1. Django简单实例

    一.前戏-MVC框架与MTV框架 1.MVC MVC(Model View Controller),是一种软件工程开发的架构模式,不仅适用于软件开发,而且适用于其他广泛的设计和组织工作,主要思想通过分 ...

  2. poj3133 插头dp

    #include <iostream> #include <cstdio> #include <string.h> #include <vector> ...

  3. 【Spark-core学习之八】 SparkShuffle & Spark内存管理

    [Spark-core学习之八] SparkShuffle & Spark内存管理环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 ...

  4. 1、Kafka介绍

    1.Kafka介绍 1)在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算. 2)Kafka是一个分布式消息队列. 3)Kafka对消息保存时根据Topic进行归类, ...

  5. 论文笔记:Real-Time MDNet

    Real-Time MDNet ECCV 2018  2018-10-22 15:52:01 Paper:http://openaccess.thecvf.com/content_ECCV_2018/ ...

  6. Qt Windows打开指定文件注意替换双斜杠为单斜杠

    QProcess::startDetached(QString("explorer %1").arg(strFilePath)); 其中,在windows上使用时,strFileP ...

  7. TypeScript作业

    题目: 了解神话故事盘古开天辟地或者女娲开世造物,通过typescript程序模拟出天地的变化过程或者万物的衍生过程 参考博客园大神: https://www.cnblogs.com/tansm/p/ ...

  8. DAY14 函数(三)

    一.三元表达式 三元运算符:就是if...else...的语法糖但是只支持只有一条if...else...语句的判断 原: cmd = input('cmd:') if cmd.isdigit(): ...

  9. yii框架通过http协议获取地址栏中的内容

    //创建一个控制器 <?php namespace frontend\controllers; use frontend\models\Zhuce; use Yii; use yii\web\C ...

  10. Mac OS 下安装nvm

    关于安装: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh 安装完成后关闭终端,重新打开终端输 ...