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

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

申请一个二维指针,比如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;

内存释放后,上述二维数组不能再被使用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2006-10-15
自己写一个二纬动态数组
第2个回答  2006-10-15
声明一个指针类型的数组头,然后在运行过程中根据需要动态开辟空间。
相似回答