|ChickenWordVariety
答案 0 :(得分:3)
尝试将move
的地址提供给scanf()
:
scanf(" %c", &move);
scanf()
需要目的地(地址),指定扫描/读取字符的位置。你正在给它move
中的垃圾值。它使用此值作为地址并尝试在那里编写您的角色。由于它写入无效的内存位置,因此崩溃。
答案 1 :(得分:2)
与忘记;
一样,忘记&
中的scanf
是C编程中最常见的错误之一。
您忘记了&
move
scanf
。
查看您的代码,我相信您已经知道为什么需要将地址传递给scanf
但是如果你没有,你可以用高质量的接受答案来提及 Why scanf must take the address of operator