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

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

 

对于简单的数据类型,delete与delete[]是没啥差别的,就是等价的

 

 

例如  

 

 

int main(){	int *pdata = new int[20];	delete pdata;	//delete[] pdata;		     return 0;}

这两是等价的,没有什么区别,

 

 

但是如果是一个动态分配数据的数据类型,就不同了,delete[]在释放数组控件前,对数组中每一个对象调用析构函数,而delete择仅仅是释放指针所指的控件

 

例如

 

 

class Student{private:	char* name;	int age;public:	Student() { name = new char[100]; };	~Student() { delete name; };};int main(){	Student* pData = new Student[20];	delete[] pData;		     return 0;}

在这里如果使用了delete,那就会有意想不到的后果了,至于什么后果,在我尝试编译的时候 ,触发了中断。

 

应该是内存访问有问题了。

 

 

 

 

 

转载于:https://www.cnblogs.com/DreamDog/p/9160109.html

你可能感兴趣的文章
关于接入新浪微博第三方登录
查看>>
CentOS下查看机器配置
查看>>
J2SE 容器
查看>>
day12—列表、元组、字典基本语法
查看>>
Java遍历JSON
查看>>
【Winform窗体控件开发】之五 实现类型转换器TypeConverterAttribute
查看>>
oracle数据库 修改表空间数据文件大小,优化存储
查看>>
linux命令详解——eval
查看>>
如何整站开启php zlib(gzip)压缩
查看>>
ubuntu ftp server
查看>>
CCPC-Winter Camp div2 day1
查看>>
对极几何(Epipolar Geometry)
查看>>
函数声明和函数表达式
查看>>
个人信息校验
查看>>
javascript笔记(二)
查看>>
Java基础之基础语法
查看>>
A* 算法理解与实现
查看>>
关于凑数问题的dfs
查看>>
CSS浮动(float、clear)通俗讲解
查看>>
自定义异常以及异常的处理
查看>>