char * input = (char*)malloc(256);
scanf("%s", input);
段错误。为什么?我在 C 中使用字符串时遇到了很多麻烦,但我觉得一切都在这里完成。我什至遵循了一个 100k+ SO 用户的例子。
char * input = (char*)malloc(256);
scanf("%s", input);
段错误。为什么?我在 C 中使用字符串时遇到了很多麻烦,但我觉得一切都在这里完成。我什至遵循了一个 100k+ SO 用户的例子。
该错误可能由以下原因引起:
<stdlib.h>
然后对 malloc 的结果进行类型转换。更多信息在这里。您需要确保缓冲区足够大,包括足够的空间用于字符串末尾的尾随 NUL(0 字节)。否则,您会遇到可能导致段错误的缓冲区溢出。