namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:free
no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


kennen:lib:free [2019-11-20 16:06] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== free() ======
 +''#include'' [[..:include:cstdlib]]
 +
 +<code cpp>
 +void free (void *ptr) 
 +</code>
 + 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.
 +  -  Mit [[..:operator#einstellig|new]] reservierter Speicher ist mit dem zugehörigen [[..:operator#einstellig|delete]]-Operator freizugeben.
 +==== Ergebnis ====
 +Rückgabewert: Keiner.
 +Der ''ptr'' darf nach dem Aufruf nicht mehr dereferenziert werden.
 +
 +==== Siehe auch ====
 +Operatoren [[..:operator#einstellig|new und delete]],
 +[[calloc]],
 +[[malloc]],
 +[[realloc]].
 +
 +==== Beispiel ====
 +<code cpp 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";
 +  } 
 +}
 +</code>
  
kennen/lib/free.txt · Zuletzt geändert: 2019-11-20 16:06 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki