Zugriff auf Komponenten einer Struktur
-
Hallo,
ich habe da mal eine frage
und zwar sitze ich gerade an einem Problem bezüglich Zugriff auf Komponenten einer Struktur.gegeben sind folgende Strukturen:
struct Li { void* head; // bzw struct RhymePair *head struct Li* tail; }; typedef Li RhymePairList; typedef struct{ sizetype length; char* data; } String; typedef struct { sizetype length; String* data; } WordList; typedef struct { String w1; String w2; } RhymePair;
RhymePairList stellt eine einfach verkettete Liste dar in deren "head" immer ein RhymePair gespeichert werden soll
Mein Problem:
Wenn ich nun ein RhymePair erzeuge und dem head der RhymePairList zuordne, möchte ich gerne später auf die einzelnen Wörter der Reimpaare der Liste zugreifen, zb so:String str=RhymePairList->head->w1
das funktioniert aber nicht.
weiss jemand wieso bzw. hat jemand einen vorschlag wie ich darauf zugreifen kann?
-
Indem du deinen Listentyp nach den anderen definierst und statt void* korrekt RhymePair* verwendest.
-
Danke, jedoch habe ich es breits ausprobiert head den typ struct Rhymepair*
zu zuweisen.
Bei dem testaufruf:printf("%s",rpl->head->w1.data);
sagt mir der gcc Kompiler jedoch:
[Error] dereferencing pointer to incomplete type
-
Lies dir meinen einen kurzen Satz nochmal durch, und mache es genauso, wie dort steht. Deine Zeile 5 ist übrigens Schrott.
-
Der Compiler geht nur einmal durch die Datei.
Wenn du etwas benutzt, muss es schon bekannt sein.
Darum ist die Reihenfolge wichtig.