C free Funktion

A

aragon19

Grünschnabel
Hallo alle zusammen,

bei programmieren bin ich auf einen Fehler gestoßen den ich mir nicht erklären kann.

Ich habe mit malloc ein 2 dimensionales Array erstellt und am Ende wieder mit free freigegeben.
Allerdings springt er beim freigeben aus dem Programm raus und wirft einen Error.

Nun meine etwas allgemeinere Frage: Was für Fehler kann er beim free in dem Array entdecken, dass er einen Fehler ausgibt?
Ich dachte immer, das Speicherplatz freigeben einfach nur "freigegeben" wird. Wo kann denn da ein Problem entstehen, was vorher beim reinschreiben nicht schon aufgefallen ist.

Vielen Dank für eure Aufmerksamkeit.

Gruß Aragorb
 
Schick uns mal bitte ein kurzes Code-Stueck, dass den Fehler reproduziert (wenn das geht) und vor allem die Fehlermeldung.
 
Das Problem besteht tatsächlich darin, dass ich keinen Programm Code rausgeben darf zumal das einfach zu viel ist.
Mir gehts auch nicht speziell um meinen Fehler, der jetzt seltsamerweise NICHT mehr auftritt, obwohl ich außer ein- und danach wieder auskommentieren nichts gemacht habe.

Mir gehts vielmehr um das allgemeine, was bei free passiert, das dann sowas auffällt und vorher nicht.

MfG Aragorn
 
Mir gehts vielmehr um das allgemeine, was bei free passiert, das dann sowas auffällt und vorher nicht.
MfG Aragorn
Das ist schon klar, nur zumindest mir hat Deine Fehlererklaerung nicht gereicht, um Dir etwas sagen zu koennen, was Du nicht ohnehin schon weisst. Das einzige, was mir einfaellt, ist, dass Du free falsch benutzt, gerade bei einem 2-dim Feld, d.h, dass Du Speicher, der bereits freigegeben ist, nochmal freigibst. "Einen Fehler werfen" sollte free sowieso nicht, da das eine Terminologie ist, die sich auf C++ bezieht und nicht auf C. Ansonsten gibt Dir natuerlich die man-page von free(3) weitere Informationen zu Fehlerquellen.
 
Zurück
Oben