1、每一个程序在执行时都占用一块可用的内存空间,用于存放动态分配的对象,此内存空间称为程序的自由存储区或堆。C语言程序使用一对标准库函数malloc和free在自由存储区中分配存储空间,而C++语言则使用new和delete表达式实现相同的功能。
2、动态分配数组时,只需指定类型和数组长度,不必为数组对象命名,new表达式返回指向新分配数组的第一个元素的指针。
如:int *pia = new int[10];
3、动态分配数组时,如果数组元素具有类类型,将使用该类的默认构造函数实现初始化;如果数组元素是内置类型,则无初始化。
可使用跟在数组长度后面的一对空圆括号,对数组元素做值初始化。
int *pia2 = new int[10]( );
4、允许动态分配空数组
5、动态数组的释放:delete [].
如:delete [] pia;