C结构体指向自身的指针

8

是否可以定义一个带有指向该类型结构的指针的结构?我的意思是:

typedef struct {
    char* name;
    node* parent;
} node;

就我所知或阅读的内容,我不知道如何做到这一点,或者它是否可能实现。


1
可能存在重复问题:https://dev59.com/aHRB5IYBdhLWcg3wz6QJ https://dev59.com/vHRB5IYBdhLWcg3wj32c - CB Bailey
4个回答

25

是的,但你必须给结构体命名,这样你才能引用它。

typedef struct node_ {
    char* name;
    struct node_ * parent;
} node;

结构体完全定义之后才能声明名称为node的变量。


非常感谢!这是我不知道的细节! :) - shazarre

23

您可以在 typedef 中使用 不完全类型:

typedef struct node node;

struct node {
  char *name;
  node *parent;
};

0

是的,这是可能的。

这就是链表的制作方式!


-3

为什么不尝试一下呢?你需要给结构体取一个名字,而且是的,这是递归数据结构的工作方式。


OP说他已经尝试过了。 - Grandpa
2
但是,正如我所写的,我尝试了 id,但没有成功,所以我在这里问 :) - shazarre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接