Ein Ausschnitt meiner Strukturdeklaration:C-Struktur, unvollständige Feldtyp
struct record{
char type[4];
uint32_t data_size;
uint32_t flags;
uint32_t id;
uint32_t revision;
uint16_t version;
uint16_t unknown;
uint8_t *data;
};
struct group;
union subgroup_record{
int type;
struct group subgroup;
struct record record;
};
struct record_list{
union subgroup_record subgroup_record;
struct record_list *next;
};
struct group{
char type[4];
uint32_t group_size;
uint8_t label[4]; // depends on group_type
int32_t group_type;
uint16_t stamp;
uint16_t unknown1;
uint16_t version;
uint16_t unknown2;
struct record_list record_list;
};
struct group_list{
struct group group;
struct group_list *next;
};
struct plugin{
struct record header;
struct group_list top_groups;
};
Der Compiler gibt mir diese Fehlermeldung:
error: field ‘subgroup’ has incomplete type
Vorwärts erklärt die Struktur nicht helfen, die typedef'ing struct und das Ändern der Deklarationen hat auch nicht geholfen und ich hätte lieber keine Zeiger überall (für einen Anfänger ist das Zuweisen und Freigeben von Speicher ein wenig beängstigend)
Irgendeine Lösung dafür?
Danke!
_Hinweis: _ In 'subgroup_record' gibt es' int type', aber dies sollte wahrscheinlich 'char type [4]' sein, um mit den 'type' Definitionen in den anderen' union' Elementen [oder umgekehrt zu kompatibel zu sein ]. Nicht kritisch [oder falsch], nur ein FYI/IMO ... –
'struct Datensatzliste Datensatzliste;' -> 'struct Datensatzliste * Datensatzliste;' Hinzufügen '*'. – chux