之前都是写的小程序,一直用的静态数组,也没出现问题。
可是,最近碰到大型程序和工程,这时就要用动态数组了。
因为静态数组时保存在栈中的,而动态数组保存在堆中。
计算机的栈只有1M大小,而堆可以理论上达到计算机内存大小,
可见当大型工程数据量非常大时,必须使用动态数组了。
c++的动态数组的建立和删除要用到new和delete,
new用来开辟内存空间,delete用来删除内存空间。
建立二维动态数组test,第一维大小为n_test1,第二维大小为n_test2。
并且n_test1和n_test2可以为变量,这点和静态数组不同,静态数组必须用常量或数字。
下面时具体实现代码:
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 6 void init(int a,int b,int **T) 7 { 8 for(int i=0;i<a;i++) 9 { 10 T[i]=new int[b]; 11 } 12 } 13 14 void final(int a,int **T) 15 { 16 for(int i=0;i<a;i++) 17 { 18 delete[] T[i]; 19 } 20 delete[] T; 21 } 22 23 int main() 24 { 25 int n_test1; 26 int n_test2; 27 int **test=new int *[n_test2]; 28 init(n_test1,n_test2,test); 29 //..... 30 final(n_test1,test); 31 32 return 0; 33 }