我对如何将二维数组指针参数分配给本地二维数组指针变量有点不明白。请看下面的代码。
#define N 5
#define M 6
void print(int (*arr)[M][N]) {
int *localArr[M][N];
localArr = arr; //error C3863: array type 'int *[6][5]' is not assignable
//localArr[0][0] =1; and so on.
}
int main()
{
int Array1[M][N];
print(&Array1);
}
局部声明必须是这样的。
int (*localArr)[M][N]; //pointer to an MxN array
//int * localArr[m][N];//An MxN array of pointer to int
你想达到什么目的?如果你只是想打印你的二维数组,那么你为什么不使用这种方法?
void print(int localArr[M][N]) {
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
cout << localArr[i][j];
}
}
}
如果有一些限制,那么Nitheesh是对的!
如果我们改变尺寸,让它更容易适应。
#define M 2
#define N 3
那么从图形上看,这个变量 arr
是这样的。