System.FreeMem

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

procedure FreeMem(var P: Pointer; [ Size: Integer]); overload;
procedure FreeMem(var P: Pointer; [ Size: Integer]); overload;

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
procedure public System.pas System System

Beschreibung

FreeMem gibt einen zuvor mit GetMem zugewiesenen Speicherblock frei.

Mit dieser Prozedur geben Sie einen mit GetMem abgerufenen Speicherblock frei.

Der Parameter Size enthält die Größe (in Byte) der freizugebenden dynamischen Variable. Wird dieser Parameter angegeben, muss er der Byte-Anzahl bei der Zuweisung der Variable mit GetMem genau entsprechen.

Nach Aufruf dieser Prozedur ist der Wert des Parameters P undefiniert.

Hinweise:

  • FreeMem ist nicht in C++ verfügbar. In C++ können Sie FreeMemory verwenden.
  • Wenn ein Zeiger auf nicht zugewiesenen Speicher an FreeMem übergeben wird, hängt das Verhalten der Anwendung weitgehend von der Zielplattform ab:
    • Windows-Plattformen: In Anwendungen, die System.SysUtils verwenden, wird EInvalidPointer ausgelöst, und für Anwendungen, die System.SysUtils nicht verwenden, wird ein Laufzeitfehler erzeugt. (FastMM, der Standard-Speichermanager, kann ungültige Zeiger ermitteln.)
    • OS X- und iOS-Plattformen: FreeMem löst keine EInvalidPointer-Exception aus, wenn ein ungültiger Zeiger an Dispose übergeben wird.

Siehe auch

Codebeispiele