error: array type has incomplete element type

Gast #1481336
Lesenswert?

Hallo,

ich versuche gerade in b.c auf das in a.c definierte
1
struct mystruct array[] = {...}

zuzugreifen (mystruct in a.h)

Ohne Weiteres gibt das einen error (
1
'array' undeclared here
).

Daher also in b.h die Deklaration
1
extern struct mystruct array[]

aber:
1
error: array type has incomplete element type

Das ist wohl nicht mehr gültig, aber alles, was ich probiert habe, führt 
zu nix.
Gast #1481376
Lesenswert?

> Dann hast du es aber nicht vor der Array-Deklaration inkludiert.
Verstehe dich nicht ganz.
mystruct wird in a.h deklariert.
a.h wird vor b.h eingebunden (in main.h).

Die exakte Größe (Anzahl der structs mystruct) bringt leider nichts.

mystruct enthält mystruct2, das vor mystruct in a.h deklariert wird.
Könnte das ein Problem darstellen?
#1481448
Lesenswert?

Gast schrieb:
>> Dann hast du es aber nicht vor der Array-Deklaration inkludiert.
> Verstehe dich nicht ganz.
> mystruct wird in a.h deklariert.
> a.h wird vor b.h eingebunden (in main.h).

Aha, und was wird wie in b.c eingebunden?

> mystruct enthält mystruct2, das vor mystruct in a.h deklariert wird.
> Könnte das ein Problem darstellen?

Vielleicht solltest du mal dazu übergehen, richtigen Code zu posten, 
statt unvollständiger Beschreibungen.
#1481507
Lesenswert?

Du inkludierst doch b.h vor den Strukturdefinitionen. Du hast bei den 
gegenseitigen Includes (die übrigens ziemlich unsinnig sind) den 
Überblick verloren, was eigentlich genau passiert.

In a.h steht ein include main.h vor den Strukturdefinitionen. In main.h 
steht ein include a.h und b.h. In a.h sind wir ja aber gerade, also wird 
wegen des Include-Guards a.h hier nicht inkludiert (würde ja sonst auch 
eine Endlosschleife geben), sondern nur b.h. Also wird hier b.h vor den 
Strukturdefinitionen eingefügt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren