递归结构

时间:2012-11-22 01:15:15

标签: c struct recursive-datastructures

我是否需要使用typedef来构建递归结构?我试图使用以下代码但没有成功:

struct teste
{
    int data;
    int data2;
    struct teste to_teste;
};

2 个答案:

答案 0 :(得分:11)

要构建递归结构,您不需要typedef

您必须将struct对象转换为struct pointer对象。

像这样:

struct teste{
  int data;
  int data2;
  struct teste *to_teste;
};

答案 1 :(得分:5)

你自己内部不能有相同的结构。如果你那样做,那么那个结构的大小就变得无限。所以这是不允许的。

相反,您可以在其内部使用指向相同结构的指针来解决您的目的。这将起作用,因为编译器已知指针的大小,并且结构现在具有确定的大小。