new与delete是用于开辟内存与释放内存,用于堆内存管理的两个关键字(标识符),与C语言中的malloc/free对应,new与delete相较于malloc和free实现机制更为复杂,new申请空间时还会调用构造函数,delete释放空间时还会析构函数。
注意:new/delete ;malloc 与free都要成对使用哦!!!以免内存泄漏
一、new的用法
new是关键字,返回的是一个指向所分配类型变量(对象)的指针。对所创建的变量或对象,都是通过该指针来间接操作的。
(一)开辟单个变量
1、开辟方式
- 指针变量名 = new + 类型标识符 ; int * p = new int // 开辟一个存放整数的存储空间,返回一个指向该存储空间的地址。
- 指针变量名 = new + 类型标识符 (做初始化的值);int *q = new int(5) //开辟一个存放整数的存储空间,并初始化赋值为5;
2、简单应用:
int main()
{
int *p = new int; //未初始化
cout<