1

这是一个奇怪的事情:

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

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。

4

1 回答 1

0

如果它有时可以正常工作而在其他时候不能正常工作,那么几乎可以肯定问题出在内存分配上。如果您可以从声明中发布您如何分配值,您应该很快就能在这里获得帮助。

于 2013-03-02T10:38:54.957 回答