提问人:Stefan L McNamara 提问时间:11/3/2023 更新时间:11/3/2023 访问量:31
尝试从结构 [duplicate] printf() char[] 时出现分段错误
Segmentation fault when trying to printf() a char[] from a struct [duplicate]
问:
我的 C 之旅大约一周了,所以如果这是一个非常愚蠢的问题,请耐心等待。我已经用 C 语言完成了一门基础课程,但已经找到了一些指导,所以我正在尝试写一些有助于我理解的东西。我定义了以下结构:
typedef struct {
char room_ID;
char room_exits[4];
char room_description[255];
} Room;
然后,我将其初始化为player_room变量
int main(){
Room *player_Room = (Room*)malloc(sizeof(Room));
player_Room->room_ID = '0';
strcpy(player_Room->room_description, "There is an ogre in the room");
strcpy(player_Room->room_exits, "N...");
printf("%s ", player_Room->room_ID);
printf(" %s", player_Room->room_description);
return 0;
}
在上面的第一行 printf() 上调试代码时发生分段错误。我知道这是一种访问冲突(我曾经是Delphi开发人员,所以我习惯了这些),试图访问我的程序无法访问的内存,或者我相信。一切都编译正常,只是那一行有错误
再一次,如果我在做一些愚蠢的事情(我可能是),我深表歉意,但我是一个非常初学者,只是在玩代码试图理解。提前致谢!
这是我尝试过的所有实际编译的第一个版本,所以我对从这里开始何去何从有点一无所知
答: 暂无答案
评论
strcpy(player_Room->room_exits, "N...");
printf("%s ", player_Room->room_ID);
但是你有.你应该使用char room_ID;
"%c "