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;
};其中我们有:
struct hash{
int hash;
};
struct DHTid
{
int islocal;
unsigned long addr;
unsigned short port;
struct DHTnode * node;
};目前:
struct DHTnode{
int something;
};编辑:我的实际代码结构如下:
struct DHTnode{...};
struct hash{...};
struct DHTid{...}; /*changed . to ; in pseudocode*/
struct BSTnode{...};编辑: user318466指出了一个缺失的分号,但它仍然有更多的错误。
发布于 2010-04-23 13:47:15
您声明了struct BSTnode类型。您正在对类型struct BSTNode应用sizeof。注意大小写的区别:n和N.当然,对于编译器来说,struct BSTNode是一个完全未知的不完整类型,这就是它告诉您的。
发布于 2010-04-23 13:45:10
末尾缺少一个;:
struct DHTid{...}.它应该是:
struct DHTid{...};发布于 2010-04-23 13:40:22
你的头文件可能会把你的一个标识符定义成你不想要的东西。
https://stackoverflow.com/questions/2696412
复制相似问题