用new运算符实现动态内存分配
第一种用法,分配一个变量:
P=new T;
T是任意类型名,P是类型为T *的指针。
例如
int *pn;
pn=new int;
*pn=5;
第二种用法,分配一个数组:
P=new T[N];
T:任意类型名
P:类型为T *的指针
N:要分配的数组元素的个数
例如
int *pn;
int i=5;
pn=new int[i*20];
pn[0]=20;
pn[100]=30//运行时数组越界
new运算符的返回值类型都是T *
用new动态分配的内存空间,一定要用delete运算符进行释放
释放变量空间:
delete 指针;//该指针必须指向new出来的空间
例如
int *p=new int;
*p=5;
delete p;
delete p;//导致异常,一片空间不能被delete多次
释放数组空间
delete [] 指针;//该指针必须指向new出来的数组
例如
int * p=new int[20];
p[0]=1;
delete [] p;