Mittwoch, 21. Oktober 2009

free(bitmapData);

Das ist die Codezeile die im Stundenplan gefehlt hat und die dafür verantwortlich war, dass das Programm so viel Arbeitsspeicher gefressen hat....

Da ich zuvor mit dem Befehl malloc() einen Teil des Arbeitsspeichers für einen Teil meines Programms reserviert hatte (nämlich den berüchtigten Farbklecks), ging natürlich der verfügbare Speicher zurück. Dummerweise hatte ich vergessen, diesen Teil des Arbeitsspeichers wieder "freizumachen", so dass andere Teile des Systems ihn verwenden können. Dies geschieht mit Hilfe des Befehls free().

Das hört sich alles relativ trivial an (ist es eigentlich auch^^), allerdings lag dieser Fehler in einem Codeabschnitt, den ich eigentlich für 100% richtig gehalten habe. Ich bin nur durch aufwändige Tests auf die Spur gestoßen die mich dann schlussendlich zu dem Fehler geführt hat.

Keine Kommentare:

Kommentar veröffentlichen