C struct-> struct-> struct->元素(通常)分段错误

时间:2013-01-08 13:12:05

标签: c pointers struct segmentation-fault

这是一个奇怪的事情:

我有一个结构,它包含指向同一类型结构的指针和指向其他类型结构的指针,以及其他一些值。

struct animal {
    struct animal * father;
    struct race * rc;
    int age;
};

struct race {
    char colour;
};

当我通过父亲访问价值年龄时,一切似乎都没问题:

animal->father->age

但是当我试图获得父亲种族的颜色时:

animal->father->rc->colour

我得到“分段错误”。但如果每次都讨好,那就太容易了。它有时会,有时不起作用,我不知道是什么因素导致它不稳定。另一件始终有效的事情是:

animal->rc->colour

您是否可以加入最多两个指针,然后可能会出现问题? 我使用最新的gcc。

1 个答案:

答案 0 :(得分:0)

如果它有时工作正常而在其他时候没有,那么问题几乎可以肯定是内存分配。如果您可以发布从声明中分配值的方式,那么您应该可以尽快获得帮助。