我在理解指針如何處理二維數組時遇到了一些麻煩。即使是錯誤信息也沒有幫助我。我有一個二維數組,我需要一個指針,所以我可以在函數內部操作它(我認爲這就是你應該怎麼做)。有人能指出我做錯了什麼,並指出我朝着正確的方向嗎?指向具有函數的二維數組
這裏是我的代碼:
#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] = ' ';
'即使錯誤信息也沒有幫助我......但他們可能會幫助我們。你會得到什麼錯誤? –