文:ポインタと指示先の結合を取り消します。
形式
NULLIFY (pointer-object [, pointer-object] ...)
pointer-object
構造体成分,または変数の名前。これはポインタでなくてはなりません (POINTER 属性を持たなくてはなりません)。
規則と振る舞い
ポインタの初期状態での結合状態は不定です。NULLIFY を使うと,不定のポインタを初期化し,空状態を与えることができます。その後,そのポインタは ASSOCIATED 組込み関数を使って検証できるようになります。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
ALLOCATE,ASSOCIATED,DEALLOCATE,NULL,POINTER,TARGET,ポインタ代入
例
次に 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