/ / Co sprawia, że ​​ta struktura jest niekompletna? - c, gcc, struct

Co sprawia, że ​​ta struktura jest niekompletna? - c, gcc, struct

gcc z miłością rzuca mi ten błąd:

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

Co sprawia, że ​​BSTnode jest niekompletne? Poniżej znajdują się definicje struct odnoszące się do BSTnode.

struct BSTnode{

struct BSTnode * left;
struct BSTnode * right;

struct hash minhash;
struct hash maxhash;

struct DHTid owner;
int misses;
};

gdzie mamy:

struct hash{
int hash;
};

struct DHTid
{
int islocal;

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

i obecnie:

struct DHTnode{
int something;
};

EDYCJA: Mój rzeczywisty kod ma następującą strukturę:

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

EDYCJA: user318466 wskazał brakujący średnik, ale było w nim jeszcze więcej nieścisłości.

Odpowiedzi:

9 dla odpowiedzi № 1

Ty zadeklarowałeś typ struct BSTnode. Ubiegasz się sizeof pisać struct BSTNode. Zwróć uwagę na różnicę wielkości liter: n i N. struct BSTNode jest oczywiście zupełnie nieznany kompilatorowi, który jest niekompletny, co właśnie ci mówi.


2 dla odpowiedzi nr 2

Brakuje ; na końcu:

struct DHTid{...}.

powinno być:

struct DHTid{...};

0 dla odpowiedzi № 3

Twoje pliki nagłówkowe prawdopodobnie #definiują jeden z Twoich identyfikatorów, aby był czymś, czego nie chcesz.