C - 为空指针赋值

C - assigning a value to a null pointer

大家好,我是 C 和指针的新手,希望您能原谅我。

我有以下代码:

char *str = NULL;
*str = 'a';
printf("My string is :%s\n",str);

它可以编译,但我每次都遇到分段错误。这是什么原因,我该如何更改它以便我可以将 'a' 分配给我的字符串?

提前致谢!

char *str = NULL;

指针str还没有分配。所以你不能取消引用它。然后你试图尊重

*str = 'a';

将发生分段错误。

如果你想要 str 具有 "a" 值,你可以这样做:

char *str = "a";
printf("My string is :%s\n",str);