System.FreeMem
Delphi
procedure FreeMem(var P: Pointer; [ Size: Integer]); overload;
procedure FreeMem(var P: Pointer; [ Size: Integer]); overload;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
procedure | public | System.pas | System | System |
説明
FreeMem は、事前に GetMem で割り当てられたメモリ ブロックを解放します。
このプロシージャを使用すると、GetMem で取得されたメモリ ブロックを破棄することができます。
Size
パラメータには、破棄する動的変数のサイズをバイト単位で指定できます。指定した場合、GetMem で指定された変数により割り当てられたバイト数と一致する必要があります。
この手続きを呼び出した後に、P
パラメータの値は未定義です。
メモ:
- FreeMem は、C++ では使用できません。 C++ では、FreeMemory を使用することができます。
- 割り当てられていないメモリを指すポインタが FreeMem に渡された場合、アプリケーションの動作は、以下のように、主にターゲット プラットフォームによって決まります。
- Windows プラットフォームの場合、System.SysUtils を使用しているアプリケーションでは EInvalidPointer が発生し、System.SysUtils を使用していないアプリケーションでは実行時エラーが発生します。 なお、デフォルトのメモリ マネージャ FastMM では無効なポインタを検出できます。
- OS X および iOS プラットフォームの場合、FreeMem は、不正なポインタが Dispose に渡されると EInvalidPointer 例外を発生させます。