#include <stdio.h>
#include <stdlib.h>
int main(){
int rows, col, i, j;
char **mazeArrP;
scanf("%d %d", &rows, &col);
mazeArrP = (char **) malloc(rows*sizeof(char));
for(i = 0; i<rows; i++){
printf("i = %d\n", i);
mazeArrP[i] = (char *) malloc(col*sizeof(char));
for(j = 0; j<col; j++){
printf("j = %d\n", j);
scanf("%c", &mazeArrP[i][j]);
}
}
return 0;
}
我使用print命令来确定我在循环中的位置。我正在尝试创建一个简单的二维字符数组,但我的循环表现得很奇怪。这是我第一次尝试使用双指针来创建一个二维数组,所以任何在这方面的帮助都将不胜感激。它似乎是从0,0开始到0,1然后要求进行扫描,然后跳到i=1 j=0等等。我是否漏掉了某些基本的东西?
malloc
函数的返回值。 - P0Wsizeof(*mazeArrP)
更好,因为即使更改了mazeArrP
的类型,它也是正确的。 - digital_revenant