Einfach verkettete Liste
-
DirkB schrieb:
Welchen Wert hat ptr in Zeile 38?
Hast du das printf mal vor Zeile 38 eingebaut? Was kommt da raus?
-
http://s1.directupload.net/file/d/3141/9ayqg2qt_jpg.htm hier ein screenshot
-
Und sizeof(ptr) ist die Größe des Pointers (4 oder
und nicht die Größe der struct.
Das gilt ebenso für first.Da meinst du sizeof(*ptr) bzw. sizeof(*first)
-
Whereeaglesdare schrieb:
... hier ein screenshot
Spaßvogel, da ist doch gar kein while.
Das kommt erst im else-Zweig.
-
oh sorry...
Das passiert, wenn man nach stunden programmieren nur noch müde ist
-
also wie sollte es aussehen?
Könntest du den Code korrigieren?
Würde mir sehr helfen!!
Schreibe da bald ne Klausur und muss es wissenVielen Dank im schoneinmal!!
-
while (ptr != NULL) // Die Schleife wird verlassen, wenn ptr GLEICH NULL ist { ptr = ptr->next; } ptr->next = .... // Unde wenn ptr gleich NULL ist, dann funktioniert der Verweis natürlich nicht
Das ist das Problem.
Die Abbruchbedingung ist falsch.
Du bist schon einen Schritt zu weit.Und überleg mal selber.
Du willst in der Liste das Element haben, dessen next auf NULL zeigt.
-
verstehe ehrlichgesagt nicht warum dann z.b. in einem beispiel das so steht:
while(zeiger != NULL) {
printf("|%12s,%-12s| %02d.%02d.%04d|"
"%02d.%02d.%04d|%06ld|\n",
zeiger->name,zeiger->vorname,zeiger->alter.tag,
zeiger->alter.monat,zeiger->alter.jahr,
zeiger->eingest.tag,zeiger->eingest.monat,
zeiger->eingest.jahr,zeiger->gehalt);zeiger=zeiger->next;
}wüsste nicht, was ich anders gemacht habe:/
-
Da greifst du innerhalb der while-Schleife auf die Elemente zu.
Und da gilt ja nochzeiger != NULL
.Nur nach der Schleife ist dann auch
zeiger
gleich NULL.
-
Wenn man (spazieren) geht, dann macht man das normalerweise so:
Solange die Stelle vor mir kein Loch ist, gehe ich weiter.Du machst aber:
Solange die Stelle auf der ich gerade bin kein Loch ist, gehe ich weiter.Kleiner Unterschied, aber so fällst du rein, weil du nicht überprüfst, was vor die liegt.
-
achso
Super vielen Dank für diese gute Hilfe!!!
Ich schaue mir das morgen nochmal in Ruhe an!
Aber langsam wird mir klar, was du meinst!!
DANKESCHÖN!!
LG