【发布时间】:2017-01-14 13:17:32
【问题描述】:
我在理解指针如何与二维数组一起工作时遇到了一些麻烦。即使是错误消息也没有帮助我。我有一个二维数组,我需要一个指针,所以我可以在函数内部对其进行操作(我认为这就是你应该这样做的方式)。有人可以指出我做错了什么并指出正确的方向吗?
这是我的代码:
#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] = ' ';
【问题讨论】:
-
Even the error messages aren't helping me...但他们可能会帮助我们。你得到什么错误?
标签: c arrays function pointers multidimensional-array