
请问C++中怎样随着程序的执行给二维数组增加行(或列)?
比如程序运行结果可以用一个二维数组来存储,但在程序运行前并不知道这个结果二维数组会有多少行(或列),而是需要需要随着程序的执行动态的给数组增加行(或列)来存储运行结果,该...
比如程序运行结果可以用一个二维数组来存储,但在程序运行前并不知道这个结果二维数组会有多少行(或列),而是需要需要随着程序的执行动态的给数组增加行(或列)来存储运行结果,该怎么办?
展开
3个回答
展开全部
申请一个二维指针,比如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;
内存释放后,上述二维数组不能再被使用。
如果运行过程中动态计算出二维数组应该是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;
内存释放后,上述二维数组不能再被使用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询