1 用new运算符实现动态内存分配
1.1 分配一个变量
P = new T;
T为任意类型名,P是类型为T * 的指针。动态分配一个大小为sizeof (T) 字节的内存空间,并且将该内存空间的起始地址赋值给P。
例:
int * p;
p = new int;
* p = 5; // 往分配的内存空间里写入5
1.2 分配一个数组
P = new T[N];
N是要分配的数组元素的个数,可以是整型表达式。动态分配一个大小为N * sizeof (T) 字节的内存空间,并且将该内存空间的起始地址赋值给P。
例:
int * p;
int i = 5;
p = new int[i * 20];
p[0] = 20;
2 用delete运算符释放动态分配的内存
例1:
int * p = new int;
* p =5;
delete p;
例2:
int * p = new int[20];
p[0] = 1;
delete [] p;