5

我需要使用typedef才能构建递归结构吗?我尝试使用以下代码但没有成功:

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

2 回答 2

13

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

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

像这样:

struct teste{
  int data;
  int data2;
  struct teste *to_teste;
};
于 2012-11-22T01:19:19.707 回答
5

您不能在其内部拥有相同的结构。如果您这样做,那么该结构的大小将变得不确定。所以这是不允许的。

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

于 2012-11-22T03:23:38.323 回答