1、new运算符
(1)分配一个变量
语法:T*类型的指针P = new 类型T;
含义:动态分配出一片大小为sizeof(T)字节的内存空间,并且将该内存空间的起始地址赋值给P。
int* p;
p = new int;
*p = 5;
(2)分配一个数组
语法:T*类型的指针P = new T[N];
含义:动态分配出一片大小为N*sizeof(T)字节的内存空间,并且将该内存空间的起始地址赋值给P,数组名就是数组的起始地址,相当于一个P[N]数组。
int* p;
int n = 10;
p = new int[n];
p[0] = 20;
2、delete运算符
用new动态分配的内存空间一定要用delete释放。一片空间不能多次delete。
(1)变量
语法:delete 指针;
int* p = new int;
*p = 5;
delete p;
delete p;//错误,一片空间不能多次delete
(2)数组
语法:delete [] 指针;
int* p = new int[20];
p[0] = 5;
delete [] p;