gcc 亲切地抛出这个错误:
bst.c:33: error: invalid application of ‘sizeof’ to incomplete type ‘struct BSTNode’
是什么让BSTnode不完整?以下是与BSTnode相关的结构定义.
struct BSTnode{
struct BSTnode * left;
struct BSTnode * right;
struct hash minhash;
struct hash maxhash;
struct DHTid owner;
int misses;
};
Run Code Online (Sandbox Code Playgroud)
我们在哪里:
struct hash{
int hash;
};
struct DHTid
{
int islocal;
unsigned long addr;
unsigned short port;
struct DHTnode * node;
};
Run Code Online (Sandbox Code Playgroud)
目前:
struct DHTnode{
int something;
};
Run Code Online (Sandbox Code Playgroud)
编辑:我的实际代码具有以下结构:
struct DHTnode{...};
struct hash{...};
struct DHTid{...}; /*changed . to ; in pseudocode*/
struct BSTnode{...};
Run Code Online (Sandbox Code Playgroud)
编辑:user318466指向一个丢失的分号,但它还有更多的错误.
你声明了类型struct BSTnode.您正在申请sizeof打字struct BSTNode.注意大小写的差异:n和N.struct BSTNode当然,编译器不完整类型是完全未知的,这就是它告诉你的.