动态内存分配与释放

1.用new运算符实现动态内存分配

1.第一种用法,分配一个变量

P = new T;(T是任意类型名,P是类型为T*的指针

动态分配出一片大小为sizeof(T)字节的内存空间,并将该内存空间的起始地址赋值给P。

int * pn;

pn = new int;

*pn =5;

2.第二种用法,分配一个数组

P = new T[N];(N是要分配的数组元素的个数,可以是整形表达式

动态分配出一片大小为N*sizeof(T)字节的内存空间,并将该内存空间的起始地址赋值给P。

3.new类型的返回值类型:

new  T 和new  T[N]的返回值类型都是:T*

2.用delete运算符释放动态分配的内存

delete  指针;//该指针必须指向new出来的空间

用“new”动态分布的内存空间,一定要用“delete”运算符进行释放。

一片空间不能被delete多次。

3.用delete运算符释放动态分配的数组

delete [] 指针;//该指针必须指向new出来的数组

int * p = new int[20];

p[0] = 1;                delete  [] p;

你可能感兴趣的:(C++,数据结构)