动态内存分配

来源:互联网 发布:淘宝贷款利息高不高 编辑:程序博客网 时间:2024/06/07 01:20

动态数据结构能够伸缩。

:对新内存空间的申请和维护。

:回收分配的内存。

new运算符:使用该运算符获得新的内存空间,new返回分配内存的地址。分配的内存是从 堆分配的,也就是C++运行时管理的内存区域分配。说白了,就是由编译器划分一段内存出来。

//分配保存一个整数的内存空间int * pNumber=new int;

一般来讲,最好在分配内存时初始化该内存保存的内容

int *pNumber=new int(100);

分配一个类的对象

类的构造函数不带有参数时

A* pA=new A;

类的构造函数带有参数时

A* pA=new A(10,20)

分类对象的数组

可以分配构造函数不带参数的类的对象数组,或者说没有显式的构造函数的类的对象数组

A * pAs=new A[100];

当构造函数带有参数时,若函数的参数为缺省参数(带有默认值),此时可以分配对象数组

A * pAs=new A[100]

若类有一个构造函数,该构造函数需要一个参数,则无法分配对象数组

//编译不过A * pAs=new A[100]

没有办法可以直接初始化动态分配的数组内容,因为不能给对象的构造函数传递值和变量的值。因此,分配内存后,必须遍历数组设置其值。

int * pAs=new int[100];for(xxx)  pAs[i]=xxx;

释放内存

对于一个变量或对象

delete pAs;

对于数组

delete [] pAs;
0 0
原创粉丝点击