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