C 语言新手请教一个段错误问题

2021-04-29 17:35:09 +08:00
 Uu6p94cFbGXx7duC
#include <stdio.h>
#include <stdlib.h>

struct Child {
};

struct Parent {
    struct Child *child;
};

int main(void)
{
    struct Child *child = (struct Child *)malloc(sizeof(struct Child));
    struct Parent *parent;

    parent->child = child;

    return 0;
}

报错为:bash: line 1: 30009 Segmentation fault: 11 "~/Code/hello_c/main",但是如果把这两行交换,就不会报错,如下:

    struct Parent *parent;
    struct Child *child = (struct Child *)malloc(sizeof(struct Child));

想不通是为啥,特来请教。

2639 次点击
所在节点    C
21 条回复
gBurnX
2021-05-04 23:28:51 +08:00
@Uu6p94cFbGXx7duC

1.冷嘲热讽的人在哪都有。前两天国内微软 2 把手下面的一个小屁孩,带着两个小伙伴,在某和一个 IT 细分方向新晋领域的老板吵了几天架。他们那种层次,同样有冷嘲热讽的。

2.你问问题,有高手回复,你达到目的就好。没必要注销账号。这个论坛里还是有很多大神潜伏着,时不时他们就会发点重要心得,你注销账号,不来这个论坛了,其实是你自己的损失。

3.另外,你可以看看那些嘲讽你的小伙伴,点开他们的资料,看看他们的提问与回复。看完后,你再想想,为这种层次的人生气,值得嘛?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/774163

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX