delete与delete[]

转载 2013年12月02日 13:41:39

转:http://blog.chinaunix.net/uid-20476365-id-1942474.html

C++ delete与delete[]区别

   delete只会调用一次析构函数,面delete[]会调用每一个成员的析构函数。在More Effective C++中有更为详细的解释:“当delete操作符用于数组时,它为每个数组元素调用析构函数,然后调用operatordelete来释放内存。”delete与New配套,delete[]与new[]配套
  

MemTest*mTest1=newMemTest[10];

  MemTest*mTest2=newMemTest;

  int*pInt1=newint[10];

  int*pInt2=newint;

  delete[]pInt1;  //-1-

  delete[]pInt2;  //-2-

  delete[]mTest1;//-3-

  delete[]mTest2;//-4-

  在-4-外报错。

这就说明:对于内建简单数据类型,delete和delete[]功能是相同的。对于自定义的复杂数据类型,delete和delete[]不能互用。delete[]删除一个数组,delete删除一个指针简单来说,用new分配的内存用delete删除,用new[]分配的内存用delete[]删除。delete[]会调用数组元素的析构函数。内部数据类型没有析构函数,所以问题不大。如果你在用delete时没用括号,delete就会认为指向的是单个对象,否则,它就会认为指向的是一个数组。


delete 和 delete []的真正区别

c++中对new申请的内存的释放方式有delete和delete[两种方式,到底这两者有什么区别呢? 1.我们通常从教科书上看到这样的说明: delete 释放new分配的单个对象指针指向的内...
  • cbNotes
  • cbNotes
  • 2014年08月28日 17:18
  • 36133

整理:new/delete和malloc/free的区别和联系

1. malloc()函数 1.1 malloc的全称是memory allocation,中文叫动态内存分配。 原型:extern void *malloc(unsigned int num_byt...
  • bat67
  • bat67
  • 2016年07月25日 11:25
  • 1295

浅谈HTTP中Get、Post、Put与Delete的区别

原文地址:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
  • Dancen
  • Dancen
  • 2014年07月08日 20:28
  • 16049

关于new和delete的详细用法

  • 2014年10月11日 22:49
  • 285KB
  • 下载

Oracle DBA最专业Delete数据文件的方法

  • 2017年11月20日 11:39
  • 298KB
  • 下载

按"Delete"按键删除对象时弹出提示框提

  • 2017年12月15日 10:54
  • 53B
  • 下载

SuperMap iDesktop 7C屏蔽Delete

  • 2017年12月15日 08:36
  • 5.46MB
  • 下载

WeChat Delete Helper

  • 2017年08月09日 16:33
  • 15KB
  • 下载

Delete the specified folder

  • 2015年05月29日 08:23
  • 3.09MB
  • 下载

delete的用法

  • 2012年05月19日 12:01
  • 14KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:delete与delete[]
举报原因:
原因补充:

(最多只允许输入30个字)