c语言结构体小问题
讨论一下技巧,怎样省略双链表中的根节点的值字段?
答:如果根节点是动态分配内存的,我们可以通过只为节点的一部分分配内存来达到目的。
Node *root;
root = malloc(sizeof(Node) – sizeof(ValueType));
一种更安全的方法是声明一个只包含指针的结构。指针就是这类结构之一,每个节点只包含这类结构中的一个。这种方法的有趣之处在于结构之间的相互依赖,每个结构都包含了一个对方类型的字段。这种相互依赖性就在声明它们是产生了一个“先有鸡还是先有蛋”的问题:哪个结构先声明呢?这个问题只是通过其中一个结构标签的不完整声明来解决。
struct DLL_NODE;
struct DLL_POINTERS
{
struct DLL_NODE *fwd;
struct DLL_NODE *bwd;
};
struct DLL_NODE
{
struct DLL_POINTERS pointers;
int value;
};
红色部分不明白,到底如何省略双链表中的根节点的值字段了?????