C Programm macht nicht das, was es soll

yoT!mO

Commander
Registriert
März 2007
Beiträge
2.700
Hallo zusammen,

ich sitze schon seit geschlagenen 4 Stunden an einer Aufgabe der Uni und ich weiß einfach nicht, wo mein Fehler im unten angegebenen Code liegt.
Von außerhalb wird zuerst die Funktion Init_allocator() und danach print_memory_map() aufgerufen.
Init_allocator() legt mir eine kleine linked list von structs an, beginnend mit Pointer head.

In print_memory_map() soll diese linked list merhmals durchlaufen werden (->for-Schleife, zu Testzwecken läuft die nur bis 1).
Das komische ist: So wie der Code jetzt da steht, bekomme ich eine Endlosschleife in der While-Schleife, weil dort zu jedem Zeitpunkt gilt: iterator == iterator->next
Das darf aber nicht sein.
Wenn ich jetzt zu Testzwecken die for-Schleife auskommentiere, funktioniert die while-Schleife ohne Probleme und es gilt, das was gelten soll, nämlich: iterator != iterator->next:

hier mal der Code
http://pastebin.com/hJrLq2Sx

Ich hoffe, ihr könnt mir helfen. Ihr seid meine letzte Hoffnung

Danke schon mal
Gruß Timo
 
Meine C-Kenntnisse sind schon ein bisschen eingerostet, aber so, wie ich das sehe, kann es doch auch gar nicht funktionieren.
In der Funktion init_allocator() werden doch nur lokale Structs erzeugt. Wenn die Funktion beendet ist, wird der Speicher der Structs wieder freigegeben.
 
Das ist es! Oh man bin ich blöd^^
Bin doch noch zu sehr von Java verwöhnt^^

Vielen Dank für den Tipp. Hab jetzt die Elemente mit malloc erzeugt und es funktioniert :-)

Gruß Timo
 
Zurück
Oben