【问题标题】:C - assigning a value to a null pointerC - 为空指针赋值
【发布时间】:2019-07-10 19:20:34
【问题描述】:

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

我有以下代码:

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

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

提前致谢!

【问题讨论】:

  • 原因是“取消引用空指针”,这是一个自助分段诊断工具。它可以诊断分段错误的所有主要原因。对您的代码进行实时测试:segfault.stensal.com/a/xORII1sQPhQnZai0

标签: c pointers nullpointerexception null null-pointer


【解决方案1】:
char *str = NULL;

指针 str 尚未分配。所以你不能取消引用它。然后你试图服从

*str = 'a';

会发生分段错误。

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

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

【讨论】:

    猜你喜欢
    • 2010-09-11
    • 2011-10-27
    • 1970-01-01
    • 2011-01-20
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    相关资源
    最近更新 更多