第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;
内存释放后,上述二维数组不能再被使用。