700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 如何给一个二维数组动态分配内存

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

时间:2019-12-04 07:00:48

相关推荐

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

今天最算法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 ;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。