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 № 1Vous 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.