二维动态数组

之前都是写的小程序,一直用的静态数组,也没出现问题。

可是,最近碰到大型程序和工程,这时就要用动态数组了。

因为静态数组时保存在栈中的,而动态数组保存在堆中。

计算机的栈只有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 }
原文地址:https://www.cnblogs.com/sunjieee/p/4064603.html