我是否需要使用typedef
才能构建递归结构?我试着用下面的代码没有成功:递归结构
struct teste
{
int data;
int data2;
struct teste to_teste;
};
我是否需要使用typedef
才能构建递归结构?我试着用下面的代码没有成功:递归结构
struct teste
{
int data;
int data2;
struct teste to_teste;
};
要建立你不需要typedef
递归结构。
您必须将结构对象转换为struct pointer
对象。
这样的:
struct teste{
int data;
int data2;
struct teste *to_teste;
};
@ user1843665中定义struct,这就是堆栈溢出的用途。 :-) –
哦,我明白了。我会在内部结构中通过以下方式引用data2: struct teste testing; testing.to_teste-> data2? – user1843665
在使用'testing.to_teste-> data2之前,不要忘记'malloc()'to_teste'指针;'' –
你不能有其自身内部的结构相同。如果你这样做,那么这个结构的大小变得不确定。所以这是不允许的。
相反,你可以有一个指向同一个结构的指针来解决你的目的。这是可行的,因为编译器知道指针的大小,并且结构现在具有确定的大小。
为什么你使用关键字结构两次? – gvd
C中不能直接递归结构;他们需要无限的存储空间。你可以有包含指向自己的结构。 –
我试图在struct – user1843665