Einfach Verkettete Listen
-
Abend !
Ich versuche mich immer noch mit den verkettete Listen rumzuboxen doch raff es einfach nicht. Ich habe mal hier ein kleines Programm geschrieben das (eigentlich) den ersten Datenblock speichern und sie dann einfach Ausgeben soll.Doch nachdem Kompilieren krieg ich den Fehler das der Strukturen-Zeiger
struct person * zeiger;
nicht initalisiert sei (heißt ins leere Zeigt).
Doch das hab ich doch mit dem "struct person *zeiger" schon gemacht oder nicht ?
Was vergesse ich hier ?Code :
struct person { char name[20]; int alter; struct person * next; }; struct person * next = NULL; struct person * anfang = NULL; int main() { struct person * zeiger; printf("Alter > "); scanf("%d", zeiger->alter); printf("Name > "); scanf("%d", zeiger->name); printf("%d %s\n", zeiger->alter, zeiger->name); }
Vielen Dank für alle Antworte !
-
Grinch schrieb:
Doch nachdem Kompilieren krieg ich den Fehler das der Strukturen-Zeiger
struct person * zeiger;
nicht initalisiert sei (heißt ins leere Zeigt).
Doch das hab ich doch mit dem "struct person *zeiger" schon gemacht oder nicht ?Wo zeigt denn der Zeiger deiner Meinung nach hin?
-
Auf die Struktur maybe ? Kp wie soll ich das sonst bei einer (einfach)verkettete liste machen ?
-
Grinch schrieb:
Auf die Struktur maybe ?
Hm OK, vielleicht sollte wir mal einen Schritt zurückgehen.
int main() { int *zeiger; ... }
Wo zeigt der Zeiger hin? Kann man das beeinflussen und wenn ja wie?
Kp wie soll ich das sonst bei einer (einfach)verkettete liste machen ?
Eins nach dem anderen.
-
Stimmt erst nachdem man
zeiger = &irgendwas
schreibt
Okay wo muss ich in dem Fall dan zeigen ?
-
Grinch schrieb:
Okay wo muss ich in dem Fall dan zeigen ?
Entweder genauso wie im int-Beispiel auf eine Variable vom Typ
struct person
, oder auf ein dynamisch alloziertes Objekt, schau dir die Funktionen malloc, calloc, realloc, free an. Was davon ist für diesen Zweck sinnvoller, was glaubst du?
-
eine dynamische^^