NULLIFY

:ポインタと指示先の結合を取り消します。

形式

NULLIFY (pointer-object [, pointer-object] ...)

pointer-object
構造体成分,または変数の名前。これはポインタでなくてはなりません (POINTER 属性を持たなくてはなりません)。

規則と振る舞い

ポインタの初期状態での結合状態は不定です。NULLIFY を使うと,不定のポインタを初期化し,空状態を与えることができます。その後,そのポインタは ASSOCIATED 組込み関数を使って検証できるようになります。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB

関連情報

ALLOCATEASSOCIATEDDEALLOCATENULLPOINTERTARGETポインタ代入

次に NULLIFY 文の例を示します。

	REAL, TARGET  :: TAR(0:50)
	REAL, POINTER :: PTR_A(:), PTR_B(:)
	PTR_A => TAR
	PTR_B => TAR
	...
	NULLIFY(PTR_A)

これらの文の実行後,PTR_A は空状態を持ち,PTR_B は変数 TAR に結合されたままとなります。

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

	! POINTER2.F90:ポインタと指示先での指示
	!DEC$ FIXEDFORMLINESIZE:80

	REAL, POINTER :: arrow1 (:)
	REAL, POINTER :: arrow2 (:)
	REAL, ALLOCATABLE, TARGET :: bullseye (:)

	ALLOCATE (bullseye (7))
	bullseye = 1.
	bullseye (1:7:2) = 10.
	WRITE (*,'(/1x,a,7f8.0)') 'target ',bullseye

	arrow1 => bullseye
	WRITE (*,'(/1x,a,7f8.0)') 'pointer',arrow1

	arrow2 => arrow1
	IF (ASSOCIATED(arrow2)) WRITE (*,'(/a/)') ' ARROW2 is pointed.'
	WRITE (*,'(1x,a,7f8.0)') 'pointer',arrow2

	NULLIFY (arrow2)
	IF (.NOT.ASSOCIATED(arrow2)) WRITE (*,'(/a/)') ' ARROW2 is not pointed.'
	WRITE (*,'( 1x,a,7f8.0)') 'pointer',arrow1
	WRITE (*,'(/1x,a,7f8.0)') 'target ',bullseye

	END