gpt4 book ai didi

c - 结构 X 中的结构 X?

转载 作者:太空狗 更新时间:2023-10-29 17:19:17 25 4
gpt4 key购买 nike

这可能真的很简单,但是我怎样才能在 C 的 struct x 中得到一个 struct x 呢?例如:

typedef struct _Node {
Node node;
} Node;

我做了一些研究并尝试使用指针,如下所示:

typedef struct _Node {
struct Node *node;
} Node;

虽然这将变量节点保留为指针,但我不希望这样,我只希望它成为 Node 结构的一个实例。谢谢你的帮助。 :)

编辑:

基本上我想做的是:

Node current = createNode(...);
while (true) {
Node node = createNode(..., &current);
addToList(node);
current = somethingElse();
}

正如您可能想象的那样,我想要一个常规节点进入 createNode() 函数:

Node createNode(..., Node node) {}

最佳答案

typedef struct node {
struct node node;
} node_s;

这将导致“无限递归”。换句话说,它的大小将是无限的。编译器无法回答这个问题:要分配多少内存?因此它会抛出一条诊断信息。

这就是为什么您必须使用指针来创建自引用类型。

typedef struct node {
struct node *node;
} node_s;

顺便说一句,以下划线开头,后跟下划线或大写字母的标识符保留给实现。

关于c - 结构 X 中的结构 X?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16997922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com