System.Dispose
Delphi
procedure Dispose(var P: Pointer);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
procedure | public | System.pas | System | System |
説明
動的変数用に割り当てられたメモリを解放します。
Dispose は、System.New を使って割り当てられたポインタ変数のメモリを解放します。System.GetMem を使って割り当てられたポインタの場合は、System.FreeMem を使用して、割り当てられたメモリを解放します。Dispose または FreeMem の呼び出し後、引数として渡されたポインタの値は未定義になります。
メモ: 割り当てられていないメモリを指すポインタが Dispose に渡された場合、アプリケーションの動作は、以下のように、主にターゲット プラットフォームによって決まります。
- Windows プラットフォームの場合、System.SysUtils を使用しているアプリケーションでは EInvalidPointer が発生し、System.SysUtils を使用していないアプリケーションでは実行時エラーが発生します。なお、デフォルトのメモリ マネージャ FastMM では無効なポインタを検出できます。
- Mac OS X プラットフォームと iOS プラットフォームの場合は、Dispose に無効なポインタが渡されても、Dispose では EInvalidPointer 例外は発生しません。