On Wednesday 15 August 2001 12:38, Matthias Fichtner wrote:
da ich aber nur Werte in der Struktur selbst aendere und nie den Pointer, wie in deiner Schleife, kann ich den Fall ausschlieszen, Auszerdem, ich glaube den Fall einer doppelten Freigabe des Speicherbereiches durch ein Flag im Speicherbereich, das dessen Freigabe anzeigt, ausgeschlossen zu haben.
Dein Glaube in allen Ehren. An Deiner Stelle würde ich es trotzdem gründlich debuggen. Im Gegensatz zu der Serie aus meiner Sig (s.u.) läuft Programmierung nicht nach dem Prinzip "Scotty, mach mal." - Fehler beseitigen heißt oft lange danach suchen und das bedeutet auch Sachen explizit auszuschließen, von denen man sich nicht vorstellen kann, dass sie die Fehlerquelle sind. Ganz besonders bei Fällen wie Deinen (wo man selbst keine Ideen mehr hat) sollten ersteinmal alle Standardfälle abgecheckt werden (Standardfehler sind kein Zeichen von Schwäche! Sie sind halt Standard.).
Sprich: das normale Vorgehen in solchen Fällen ist dieses: 1.Alle relevanten Variablen überwachen (Pointer, normaler Variablen, Inhalte von Pointern) und Schrittweise debuggen. 2.Wenn das nix bringt: den Radius erweitern (weitere Funktionen usw.). 3.Wenn das auch nix bringt: die relevanten Teile in ein vereinfachtes Programm übernehmen und solange testen, bis der Fehler reproduzierbar und lokalisierbar ist (evtl. ist es auch ein Bug in der Libc). Wenn man so weit ist: dringend alle Spezifikationen durchlesen, um sich Peinlichkeiten zu ersparen. Wenn die Situation nicht auf eigenen Fehlern beruht: Bugreport schreiben und nach einem Workaround suchen falls es länger dauern kann.
Konrad