/ / Qu'est-ce qui rend cette structure incomplète? - c, gcc, struct

Qu'est-ce qui rend cette structure incomplète? - c, gcc, struct

gcc me lance amoureusement cette erreur:

bst.c:33: error: invalid application of ‘sizeof’ to incomplete type ‘struct BSTNode’

Qu'est-ce qui rend BSTnode incomplet? Vous trouverez ci-dessous les définitions de structure relatives à BSTnode.

struct BSTnode{

struct BSTnode * left;
struct BSTnode * right;

struct hash minhash;
struct hash maxhash;

struct DHTid owner;
int misses;
};

où nous avons:

struct hash{
int hash;
};

struct DHTid
{
int islocal;

unsigned long addr;
unsigned short port;
struct DHTnode * node;
};

et actuellement:

struct DHTnode{
int something;
};

EDIT: Mon code actuel a la structure suivante:

struct DHTnode{...};
struct hash{...};
struct DHTid{...}; /*changed . to ; in pseudocode*/
struct BSTnode{...};

EDIT: user318466 a pointé un point-virgule manquant, mais il y avait encore plus d'inconvénients.

Réponses:

9 pour la réponse № 1

Vous avez déclaré le type struct BSTnode. Vous postulez sizeof taper struct BSTNode. Notez la différence de capitalisation: n et N. struct BSTNode est, bien sûr, un type complètement inconnu du compilateur incomplet, ce qu’il dit.


2 pour la réponse № 2

Il manque un ; au bout du:

struct DHTid{...}.

CA devrait etre:

struct DHTid{...};

0 pour la réponse № 3

Vos fichiers d'en-tête #définissent probablement l'un de vos identifiants comme quelque chose que vous ne voulez pas.