在C语言中是利用库函数 malloc 和 free 函数来分配和撤销内存的。C++提供了较简便而功能较强的运算符 new 和 delete 来取代 malloc 和 free 函数。
new 和 delete 是运算符,不是函数,因此执行效率高。
1. 注意 new int(100) 与 new int [100] 的区别。
2. 动态分配和释放二维数组的方法:
1)char (*a)[N]; a = new char[m][N]; delete[] a;
2)char** a = new char* [m];
for(int i = 0;i<m;i++)
a[i] = new char[N];
for(i = 0;i<m;i++)
delete[] a[i];
delete[] a;
3)也可以直接分配一个大的一维数组,用的时候转换一下下标即可。
3. 一个例子:
CShape** pshape = new CShape* [100];(CShape是一个类)。