【发布时间】:2013-06-08 09:12:00
【问题描述】:
这可能真的很简单,但是我怎样才能让 struct x 在 C 中的 struct x 中呢?比如:
typedef struct _Node {
Node node;
} Node;
我做了一些研究并尝试使用指针,如下所示:
typedef struct _Node {
struct Node *node;
} Node;
虽然这将变量 node 作为一个指针,我不想要,但我只是希望它成为 Node 结构的一个实例。谢谢你的帮助。 :)
编辑:
基本上我想做的是:
Node current = createNode(...);
while (true) {
Node node = createNode(..., ¤t);
addToList(node);
current = somethingElse();
}
正如您可能想象的那样,我想要一个常规节点进入 createNode() 函数:
Node createNode(..., Node node) {}
【问题讨论】:
-
你不能那样做。要了解递归,首先要了解递归。
-
@DCoder 那么理想的解决方法是什么?
-
使用指针,就像你在研究中发现的那样
-
如果
Node类型的变量包含Node类型的成员node,那么该成员还包含Node类型的成员node...成为他们的无限链。而且由于那里没有其他任何东西,你不能对这个变量做任何事情,只能跟随无限链到任何地方。