嗨,我是C和指针的新手,希望您能原谅我。
我有以下代码:
char *str = NULL;
*str = 'a';
printf("My string is :%s\n",str);
它可以编译,但是每次都遇到分段错误。造成这种情况的原因是什么?如何更改它以便为字符串分配“ a”?
谢谢!
答案 0 :(得分:0)
char *str = NULL;
指针str尚未分配。因此,您不能取消引用它。然后,您尝试遵循
*str = 'a';
将发生分段错误。
如果您想要str为“ a”值,则可以采用以下方式:
char *str = "a";
printf("My string is :%s\n",str);