Structs that refer to each other

c, gcc

Solution

How is that supposed to work? `a` would contain `b`, which would contain `a`, which would contain `b`, etc...

I suppose you want to use a pointer instead?

struct b;

struct a {
  struct b *bb;
};

struct b {
  struct a *aa;
};

Even that though is bad coding style - circular dependencies should be avoided if possible.

Problem

I want to have two structs that can contain each other. Here is an example: ``` struct a { struct b bb; }; struct b { struct a aa; }; ``` But this code doesn't compile. gcc says: ``` test.c:3: error: field ‘bb’ has incomplete type ``` Is there a way to achieve this?

Original source