1.
A (*ga)[n] = new A[m][n];
...
delete []ga;
缺点:n必须是已知
优点:调用直观,连续储存,程序简洁(经过测试,析构函数能正确调用)
2. A** ga = new A*[m];
for(int i = 0; i < m; i++)
ga[i] = new A[n];
...
for(int i = 0; i < m; i++)
delete []ga[i];
delete []ga;
缺点:非连续储存,程序烦琐,ga为A**类型
优点:调用直观,n可以不是已知
3. A* ga = new A[m*n];
...
delete []ga;
缺点:调用不够直观
优点:连续储存,n可以不是已知
4. vector
Vector<vector<A>> ga(m,vector<A>(n))
注:n,m都可以未知
本文探讨了四种不同的方法来创建和管理动态二维数组,包括直接使用指针分配、使用指针数组分配、连续分配以及利用vector容器。每种方法都有其优缺点,如调用直观性、是否连续存储及内存分配的灵活性等。

4649

被折叠的 条评论
为什么被折叠?



