是什么让这个结构不完整?

Rit*_*ose 0 c gcc struct

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指向一个丢失的分号,但它还有更多的错误.

AnT*_*AnT 9

你声明了类型struct BSTnode.您正在申请sizeof打字struct BSTNode.注意大小写的差异:nN.struct BSTNode当然,编译器不完整类型是完全未知的,这就是它告诉你的.