欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

如何给一个二维数组动态分配内存

发布时间:2025/6/15 编程问答 30 豆豆
生活随笔 收集整理的这篇文章主要介绍了 如何给一个二维数组动态分配内存 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
今天最算法project时遇到需要使用一个动态数组,并且这个数组在编译时还是不知道大小的,到底能不能给二维数组动态分配空间,我还真没试过。是不是跟一维数组一样?用int *ar = new int[n][m],试了一下不行。 后来试了很多方法参考了网上的资料终于理解了,其实方法还是跟一维数组一样,至少说二维数组可以看成是地址的地址。具体方法如下: void test_two_array()
{
int r ,c ;//r 表示行,c表示列
cin >> r>> c;
cout<<endl ; //数组的第一维动态分配空间,相当于动态分配一个类型为Int* 的数组的空间相当于ar[],想给每一行分配the   array   with   row   r,column   c
//相当于创建一个指针数组int*[],每一个数组元素是一个指针,代表一行,共r行
int * *ar = new int*[r] ; for (int i = 0 ;i< r ; i++)
{
   *(ar+i) = new int[c]; //相当于给每一行动态分配c个数组元素空间,每个其实就是一列(相当于对每个数组的第二维动态分配空间 ar[][] 给各个列分配),
   //i=0是表示给第一行分配c个整型元素空间
} //test for (int i = 0 ; i < r ; i++)
{
   for (int j = 0 ; j<c ; j++)
   {
    ar[i][j] = 10*(i+1)+(j+1) ;
    cout << ar[i][j] << "\t" ;
   }
   cout << endl ;

}

转载于:https://blog.51cto.com/pingpeace/284555

总结

以上是生活随笔为你收集整理的如何给一个二维数组动态分配内存的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。