gpt4 book ai didi

c - 段错误,我的代码中缺少什么?

转载 作者:行者123 更新时间:2023-11-30 21:20:27 24 4
gpt4 key购买 nike

我正在尝试让我的代码将包含 3 列、xcoor、ycoor 和包含 2 个字符的符号的文本文件转换为 30x30 的 map ,该 map 打印符号的第二个字符,并填充其余空格带有“.”但是,我的代码似乎无法运行,并且当我尝试输入文本文件时出现段错误,我做错了什么?提前致谢

int main(void)
{
char grid[30][30];
for(int i=0;i<30;i++){
for(int j=0;j<30;j++){
grid[i][j]='.';
}
}

int xcoor,ycoor;
char symbol[2];
while((xcoor!=0)||(scanf("%d",&xcoor)))
{
while(xcoor==0){
scanf("%d",&xcoor);
}
scanf("%d %c%c",&ycoor,&symbol[0],&symbol[1]);
grid[xcoor-1][ycoor-1]=symbol[1];
}

for(int i=0;i<30;i++){
for(int j=0;j<30;j++){
printf("%c ",grid[i][j]);
}
printf("\n");
}

return 0;
}

最佳答案

这可能无法涵盖您的所有错误,但我立即看到:

int xcoor,ycoor;
char symbol[2];
while((xcoor!=0)

您认为 xcoor 现在有一个有效值吗?应该是?因为事实并非如此。您已经创建了一个变量,然后在实际将其设置为任何内容之前,您正在检查它的值。

很可能是您的 scanf 调用给您带来了麻烦。无论如何,尝试实际设置这些变量。它很可能会解决您的问题。

请参阅此处了解更多信息:Is reading from unallocated memory safe?

关于c - 段错误,我的代码中缺少什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38209400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com