【发布时间】:2012-03-06 16:11:23
【问题描述】:
include<stdio.h>
int main()
{
//char b[10];
char *a="goodone";
//a=b;
scanf("%s",a);//this scanf fails and thow segmentation fault.
printf("%s",a);
}
为什么这不起作用?我用这个 scanf 做了很多尝试,但是当我为我的变量 a*(通过分配 a=b(注释))保留内存时,它工作正常。否则不会。 我相信 char *a 会为其字符串分配一些内存,(“goodone”)并将该内存位置返回为其值。 printf 在这种信念下工作得很好,为什么 scanf 不行? 请救救我……
【问题讨论】:
-
我强烈建议您阅读C FAQ entry 来解答这个问题。