代码之家  ›  专栏  ›  技术社区  ›  Ritwik Bose

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

  •  0
  • Ritwik Bose  · 技术社区  · 16 年前

    gcc 深情地告诉我这个错误:

    bst.c:33: error: invalid application of ‘sizeof’ to incomplete type ‘struct 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指出了一个缺少的分号,但仍然有更多的错误。

    3 回复  |  直到 16 年前
        1
  •  9
  •   AnT stands with Russia    16 年前

    您声明了类型 struct BSTnode . 你正在申请 sizeof 键入 struct BSTNode . 注意资本化的差异: n N . 结构节点

        2
  •  2
  •   user318466    16 年前

    少了一个 ; 结束时:

    struct DHTid{...}.
    

    应该是:

    struct DHTid{...};
    
        3
  •  0
  •   Windows programmer    16 年前

    你的头文件可能定义了一个你不想要的标识符。