简单介绍
为了能够实现动态内存分配,C++使用运算符new
创建内存空间,用delete
释放分配出去的空间
new
可以使用new
分配以下三种类型的内存空间,即基本类型,类,数组
- new int
- new classname
- new int[10],new classname[10]
new
所做的事情有三种:分配内存空间、调用构造函数(如果new
的对象是类的话)以及提供分配空间的地址信息
注:new
创建的是指针对象
delete
使用delete
释放给定地址的内存空间(p代表需要收回空间的对象地址),以下两种的区别在于在new
内存空间时使用的是单个对象还是数组
- delete p
- delete[] p
如果需delete
的是类对象,使用delete
时先调用析构函数,再收回内存空间
注:delete
收回空间的操作对象是指针
内存分配与收回详解
在使用new
申请空间分配时,系统会有记录表
记录两个信息:分配空间的地址
和分配空间的大小&#x