我对指针如何与二维数组配合工作感到有些困惑。即使错误消息也没有帮助我。我有一个需要指针来操作的2D数组,以便我可以在函数内部进行操作(我认为这是您应该这样做的方式)。请问有人可以指出我的错误并将我引导到正确的方向吗?
以下是我的代码:
#include <stdio.h>
#include <time.h>
void init(char *array);
int main(int argc, char *argv[]) {
char grid[21][80];
char (*grid_ptr)[80];
grid_ptr = grid;
int i, j;
init(*grid_ptr);
for (i=0; i<21; i++) {
for (j=0; j<80; j++) {
printf("%c", grid_ptr[i][j]);
}
printf("\n");
}
return 0;
}
void init(char *array) {
int i,j;
for (i=0; i<21; i++) {
for (j=0; j<80; j++) {
*array[i][j] = ' ';
}
}
for (i=0; i<21; i++) {
*array[i][0] = '|';
*array[i][79] = '|';
}
for (i=0; i<80; i++) {
*array[0][i] = '-';
*array[20][i] = '-';
}
}
错误的类型如下所示:
main.c:27:16: error: subscripted value is not an array, pointer, or vector
*array[i][j] = ' ';