未初始化的 C 指针

阿卜杜拉·阿尔玛利亚

为什么这个版本的 C 代码不起作用(导致分段错误)

#include <stdio.h>

int main()
{
    int *p;
    *p = 10;
    return 0;
}

当这个工作时?

int main()
{
    char c = 'c';
    int *p;
    *p = 10;
    return 0;
}
阿纳斯塔丘

两个代码片段都是错误的,不能说一个比另一个更错误,p在两种情况下都未初始化,因此它可能包含也可能不包含有效的内存地址,不可能知道,行为是 undefined在这种情况下,工作,无论这意味着什么,都在可能的结果范围内。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章