new用于创建一个堆空间,返回的为一个首地址
语法:指针变量 = new 数据类型 int *p = new int;
指针变量 = new 数据类型【长度n】 int *p = new int【10】;
delete用于释放堆空间
语法:delete 指针变量 delete *p;
delete【】 指针变量 delete *p【10】;
#include<iostream>
using namespace std;
int main()
{
int *p = new int(33); //()表示分配一个4字节的空间,对空间进行初始化
cout<<*p<<endl; //33
int *p2 = new int[10]; //分配一个40字节的空间
cout<<*p2<<endl; //计算机选择的一个值
delete p;
delete[] p2;
return 0;
}
注:new是创建一个新对象(1.内存分配operator new 2.调用构造函数)
3种用法:1.new operator:分配内存+调用构造函数
2.operator new:只分配内存
3.placement new:不分配内存,只调用拷贝构造函数
delete是删除一个对象(1.调用析构函数 2.释放掉内存)
释放内存用法:operator delete