C中另一个结构中的结构

C中另一个结构中的结构,c,struct,C,Struct,我需要这样做: typedef struct a A; typedef struct b B; struct a{ B oi; }; struct b{ A ola; }; 但当我尝试编译时,它会返回此错误: gustavo@depaula-ubuntu:~/Desktop/grafo$ gcc test.c test.c:3:12: error: field ‘ola’ has incomplete type struct a ola;

我需要这样做:

typedef struct a A;
typedef struct b B;


struct a{
    B oi;
};

struct b{
    A ola;
};
但当我尝试编译时,它会返回此错误:

gustavo@depaula-ubuntu:~/Desktop/grafo$ gcc test.c 
test.c:3:12: error: field ‘ola’ has incomplete type
   struct a ola;
            ^
编辑: 我不认为这是一个XY问题,但我需要上面的代码(它不工作):


你不能做你想做的事

其中一个成员必须是指针

struct a{
    B* oi;
};

struct b{
    A ola;
};


什么是“像这样的东西”?不,我不想做链表。你为什么需要这个?这不是吗?不要问如何做不可能的事情。相反,请说明您实际想要完成的任务。虽然可能有两个不同的结构相互引用,例如使用指针,但尝试将每个结构的实例嵌套在另一个结构中显然是没有意义的。假设其中至少有一个包含一些附加字段,无限嵌套将需要无限内存和无限地址空间,对吗?相反,试着做一些真正有意义的事情。
struct a{
    B* oi;
};

struct b{
    A ola;
};
struct b{
    A* ola;
};

struct a{
    B oi;
};