Ich versuche, meine verknüpfte Liste zu drucken, bis der nächste Knoten NULL ist, aber ich bin seg Fehler nach dem Drucken von zwei Knoten. mov ist meine verknüpfte Liste Knoten.Segmentierungsfehler beim Versuch, die verknüpfte Liste zu drucken C
Dies ist meine Push-Funktion, die ich verwende, um die Daten den Knoten zuzuweisen.
void push(movie** mov)
{
movie* new = malloc(sizeof(movie));
new->next = (*mov);
(*mov) = new;
}
Nachdem die Daten an den Knoten zuweisen, ich rufe push (& mov);
Ich benutzte ein Array von Strukturen vorher, aber da die Menge an Speicher zum Speichern sehr groß wurde, dachte ich, es würde nicht sehr gut funktionieren, da malloc einen zusammenhängenden Speicherblock zuweist, wo ich wie mit Knoten zuordnen kann kleine Speicherblöcke für jeden Knoten.
Frage: Wie stellen Sie sicher 'MOV-> next' ist für den letzten Knoten NULL? –
Autsch! 'free (mov);' und danach 'mov = mov-> next;'. Sie dürfen nicht auf Daten zugreifen, die "frei" -d sind. – Scheff
Sie sollten das lesen: [mcve] –