kennen:lib:free
Inhaltsverzeichnis
free()
#include
<cstdlib>
void free (void *ptr)
Gibt durch calloc(), malloc() oder realloc() reservierten dynamischen Speicherblock frei.
Parameter
ptr | gültiger Zeiger auf dynamischen Speicherbereich |
Vorsicht, Gefahrenquellen:
- Nichtfreigeben führt zu Speicherlecks.
- Mehrmaliges Freigeben führt zu unkontrollierbarem Verhalten (Speicherkonfusion, Programmabbruch oder Schlimmeres).
- Laut Standard ISO C 9899:1999 ist der Aufruf mit dem Argumentwert
NULL
zulässig und unschädlich, bei älteren Compilern jedoch undefiniert.
Ergebnis
Rückgabewert: Keiner.
Der ptr
darf nach dem Aufruf nicht mehr dereferenziert werden.
Siehe auch
Operatoren new und delete, calloc(), malloc(), realloc().
Beispiel
- free.cpp
#include <cstdlib> #include <iostream> int main() { using namespace std; int anzahl = 1000; int *ptr = (int*) malloc(anzahl*sizeof(int)); if (ptr != NULL) { ptr[0] = 0; ptr[anzahl-1] = 999; // ... cout << ptr[0] << "..." << ptr[anzahl-1] << '\n'; free(ptr); } else { cerr << "Nicht genug Speicher vorhanden.\n"; } }
kennen/lib/free.txt · Zuletzt geändert: 2019-11-20 16:06 von 127.0.0.1