Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Löschen eines dynamisch erzeugten Arrays (C)



awehrm
01-02-2006, 19:59
Hallo!

Nehmen wir mal an, ich habe mir irgendwo ein Array mit n int Elementen
erzeugt:



int *array;

array=(int *)malloc(sizeof(int)*n);


Kann ich dann durch einfachen Aufruf von



free(array);


den gesamten Platz den das Array im Speicher einnimmt wieder
freigeben? Oder muss ich etwa für jedes einzelne Element die
Funktion free aufrufen?

mfg awehrm

peschmae
01-02-2006, 20:27
free(array) ist genau richtig.

Das System weiss ja nicht was du mit dem Speicher machst - für das ist das einfach ein Speicherstück das du mit malloc anforderst und mit free wieder freigibst. Was du da rein tust ist ganz deine Sache.
Folglich musst oder kannst du auch nicht einzelne Elemente löschen oder so.

MfG Peschmä

awehrm
01-02-2006, 20:34
Alles klar, danke für die schnelle Antwort!