请问各位高手,如何动态分配一维数组和二维数组。比如,程序一开始。我定义了:int a[3]={0};int b[2][3]={0};但有时执行到后面的程序后,要动态分配这两个数组,该怎么写。有点忘了,虽然是个很简单的问题。希望能赐教。先谢了!
你这里用:int** b = new int*[2]; 是定义了一个动态二维数组b的吗?但是,在循环里:b[i]=new int[3],b还是一维的。是不是我理解错误了。解释一下可以吗?
b是二维数组[2][3],两行三列,具有6个int型的元素。分配内存时先把b看成一维的,具有2个元素,类型为int型指针。然后为每个元素动态分配内存,相当于每个元素是一个指向数组首地址的指针。
我明白了,b其实是一个指向二维数组没一行第一个元素的指针吧 。那么,遍历数组元素时,可以用:b[i][j] (i<2;j<3)的形式访问吗。应该可以用:*(b[i]+j)的形式访问吧。