我是否需要使用typedef
来构建递归结构?我试图使用以下代码但没有成功:
struct teste
{
int data;
int data2;
struct teste to_teste;
};
答案 0 :(得分:11)
要构建递归结构,您不需要typedef
。
您必须将struct对象转换为struct pointer
对象。
struct teste{
int data;
int data2;
struct teste *to_teste;
};
答案 1 :(得分:5)
你自己内部不能有相同的结构。如果你那样做,那么那个结构的大小就变得无限。所以这是不允许的。
相反,您可以在其内部使用指向相同结构的指针来解决您的目的。这将起作用,因为编译器已知指针的大小,并且结构现在具有确定的大小。