请问C++中怎样随着程序的执行给二维数组增加行(或列)?

如题所述

第1个回答  2022-11-20
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

比如程序运行结果可以用一个二维数组来存储,但在程序运行前并不知道这个结果二维数组会有多少行(或列),而是需要需要随着程序的执行动态的给数组增加行(或列)来存储运行结果,该怎么办?

解析:

申请一个二维指针,比如int **a;

如果运行过程中动态计算出二维数组应该是m行n列,那么用如下语句申请空间:

a = new int*[m];

if (a == NULL) ... 内存不足,申请失败。

for (int i = 0; i < m; i++)

{

a[i] = new int[n];

if (a[i] == NULL) ... 内存不足,申请失败。

}

注意最后用完后,需要用如下代码释放内存:

for (int i = 0; i < m; i++)

{

delete [] a[i];

}

delete [] a;

内存释放后,上述二维数组不能再被使用。
相似回答