new/delete

1.使用new运算符分配堆内存

用于申请一块连续的内存

new 数据类型(初始化列表)

其中,数据类型表示申请的内存空间要存储的数据类型初始化列表指的是要存储的数据类型。如果暂时不存储数据,初始化列表可以为空,或者数据类型后面没有()。如果内存申请成功,则new返回一个具体类型的指针;如果内存申请失败,则new返回NULL

new申请内存空间的过程,通常称为new一个对象。与malloc()想比,new创建动态对象时不必为对象命名,直接指定数据类型即可,并且new能够根据初始化列表中的值进行初始化

(1)创建基本数据类型对象

使用new创建基本数据类型对象

char* pc = new char;//存储char类型的数据,没有初始化列表,新分配内存中没有初始值
int* pi = new int(10);//存储int类型的数据,初始化列表为10,即分配一块内存空间,并把10存入该空间内
double* pd = new double();//存储double类型的数据吗,且初始化列表为空,用0初始化该对象

(2)创建数组对象

使用new创建数组对象

new 数据类型[数组长度];

如:char*pc = new char[10]//指针pc指向大小为10的char类型数组

2.使用delete运算符释放堆内存

用new运算符分配的内存在使用后要及时释放以免造成内存泄漏,C++中使用delete

delete 指针名;

delete直接作用于指正就可以释放指针所指向的内存空间,但是要在指针名前加上[]

发表评论