动态分配内存
建立了一个基本类型变量
int *a=new int(2);
等价于
int *a;//a是基本int型变量
a=new int(2);//用2初始化
动态分配了用于存int数据的内存空间,并将初值2存入空间,然后将首地址赋给指针a
int *a=new int();//括号为空,表示用0对该对象初始化
delete a;//指针名,释放指针所指向的内存空间
建立了一个类的对象
point* ptr1 = new point;//创建point类的指针对象*ptr1
ptr1 = new point(1, 2);//调用含参构造函数
delete ptr1;//指针名,调用析构函数
- 申请用于存放T类型对象的内存空间,并依初值列表赋以初值
- T类型的指针,指向新分配的内存
建立数组
- 普通数组
int *ptr=new int[10]();//创建数组,用0值初始化,可以不加括号
delete[]指针名;
-
new int[]必须有元素数目
-
delete与指针之间必须有[](new时无[]则无,new时有则有)
- 数组是类的对象
point* ptr = new point[2];//创建(类的)对象数组,类名 指针=new 数组[]
delete[]指针名;