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);
}
为什么这个不起作用?我尝试了很多次,但是当我为我的变量a保留内存(通过将a=b赋值给a,已注释)时,它可以正常工作。否则就不行。 我认为char *a会为其字符串分配一些内存(“goodone”),并将该内存位置返回到其值。printf可以正常工作,为什么scanf不行? 请帮我解决这个问题....