DEALLOCATE

:割付け配列とポインタ指示先に対して割り付けられていた記憶域を解放します (また,これによりポインタは空状態となります)。

形式

DEALLOCATE ( object [, object] ...[, STAT=sv] )

object
構造体成分,または変数の名前。ポインタまたは割付け配列でなくてはなりません。

sv
割付け解除の状態が格納されるスカラ整数変数。

規則と振る舞い

STAT 変数を指定する場合,その変数は,それが現われる DEALLOCATE 文中で割付け解除してはなりません。割付け解除が成功すると,変数はゼロに設定されます。割付け解除が失敗すると,エラーが発生し,変数は (実行時エラーを表す) 正の整数値に設定されます。STAT 変数が宣言されていないときにエラーが発生すると,プログラムの実行が終了させられます。

明示的に割り付けた記憶域は,不要になった時点ですべて明示的に割付け解除することをお勧めします。

ALLOCATE 文で結合されていなかったポインタを割付け解除するには,NULLIFY 文を使います。

実行時エラーの一覧は,「Visual Fortran 実行時エラー」を参照してください。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB

関連情報

ALLOCATENULLIFY配列

次の例は,割付け配列の割付け解除を示しています。

	INTEGER ALLOC_ERR
	REAL, ALLOCATABLE :: A(:), B(:,:)
	...
	ALLOCATE (A(10), B(-2:8,1:5))
	...
	DEALLOCATE(A, B, STAT = ALLOC_ERR)

以下に別の例を示します。

	INTEGER, ALLOCATABLE :: dataset(:,:,:)
	INTEGER reactor, level, points, error
	DATA reactor, level, points / 10, 50, 10 /
	ALLOCATE (dataset(1:reactor,1:level,1:points), STAT = error)
	DEALLOCATE (dataset, STAT = error)