我想让用户输入一系列我作为char读取的行,并将其保存到数组中。我有一个实用函数,应该打印网格中每个项目的值。但是,使用printMaze()
的putchar()
中的行导致了分段错误,可能是因为**maze
参数有问题,尽管我不知道是什么原因造成的,也不知道如何修复它。下面是代码。
#include <stdio.h>
#include <stdlib.h>
void printMaze(char **maze, int width, int height){
for (int x = 0; x < width; x++){
for (int y = 0; y < height; y++){
putchar(maze[x][y]);
}
}
}
int main(int argc, char *argv[]){
int width, height;
scanf("%d %d", &height, &width);
char originalMaze[width][height];
for (int y = 0; y < height; y++){
for (int x = 0; x < width; x++){
originalMaze[x][y] = getchar();
}
getchar();
}
printMaze(originalMaze, width, height);
return 0;
}
最佳答案
void printMaze(char **maze, int width, int height)
正在寻找指向指针的指针,但您只需在
printMaze(originalMaze, width, height);
编译器可能正在传递不兼容的类型并让程序启动,但一旦尝试将值加载到数组中,它将无法工作。
关于c - C Char数组导致段错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40071585/