博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 中 delete 和 delete[] 的区别
阅读量:5162 次
发布时间:2019-06-13

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

一直对 C++ 中 delete 和 delete[] 的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。

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

关于 new[] 和 delete[],其中又分为两种情况:

① 为基本数据类型分配和回收空间;

② 为自定义类型分配和回收空间。

看下面程序,理解其中的区别

#include 
 
using namespace std;
 
class TEST {
public:
TEST() {
cout << "constructor called" << endl;
}
 
~TEST() {
cout << "destructor called" << endl;
}
};
 
int main() {
const int NUM = 3;
 
TEST *test1 = new TEST[NUM];
delete[] test1;
 
TEST *test2 = new TEST[NUM];
delete test2;
 
return 0;
}

运行结果如下:

C++ 中 delete 和 delete[] 的区别 - mForestLaw - mForestLaws Blog

可见,当分配数组对象内存时用 delete[] 才能将所有数组对象销毁,而 delete 只能销毁数组中第一个对象

转载于:https://www.cnblogs.com/mforestlaw/p/3289507.html

你可能感兴趣的文章
Java Scala获取所有注解的类信息
查看>>
delphi ,安装插件
查看>>
case when then的用法-leetcode交换工资
查看>>
11.28.cookie
查看>>
BeanShell简介
查看>>
python字符串操作
查看>>
不同程序语言的注释和变量要求
查看>>
语言基础(9):static, extern 和 inline
查看>>
ES5_03_Object扩展
查看>>
bzoj 2600: [Ioi2011]ricehub
查看>>
创建数据库,表
查看>>
工厂模式
查看>>
计算机网络基础知识
查看>>
C#里如何遍历枚举所有的项
查看>>
如何在键盘出现时滚动表格,以适应输入框的显示
查看>>
超级强大的鼠标手势工具
查看>>
常用Dockerfile举例
查看>>
jquery的ajax用法
查看>>
设计模式-策略模式(Strategy)
查看>>
django orm 数据查询详解
查看>>