【发布时间】:2018-05-23 09:49:42
【问题描述】:
我正在尝试使用 fgets 从标准输入中获取一行。这是我的代码
char* FENString;
printf("Enter FEN Key: ");
fgets(FENString, 50, stdin);
FENString 只有一个字符,即换行符。我已经尝试寻求帮助,但没有找到任何东西,有谁知道为什么会发生这种情况?
确保所有变量都分配了某种内存是非常重要的,至少在其生命周期的某个时间点。这里的问题是 char 指针没有分配任何类型的内存。可以修复它的是 mallocing FENString,或者可能将声明更改为 char FENString[50];
【问题讨论】:
-
Why does a program accessing illegal pointer to pointer not crash? 的可能重复 不是完全重复,但对潜在行为的解释就在那里。