System.FreeMem
Delphi
procedure FreeMem(var P: Pointer; [ Size: Integer]); overload;
procedure FreeMem(var P: Pointer; [ Size: Integer]); overload;
Inhaltsverzeichnis
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.