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直接作用于指正就可以释放指针所指向的内存空间,但是要在指针名前加上[]