ポインタは指示先に結合することができます。ポインタは,プログラムの実行中の異なる時点で,不定の状態になったり,異なる指示先に結合されたり,空状態になったりすることができます。ポインタの初期結合状態は不定の状態です。ポインタの結合は以下の方法で行うことができます。
指示先は結合されているか,TARGET 属性を付けて指定されていなくてはなりません。指示先が割付け可能ならば,その時点で割付け済みでなくてはなりません。
ALLOCATE 文はポインタを引用していなくてはなりません。
ポインタは,以下のいずれかが起こったときに,空状態になります。
ポインタが NULLIFY 文によって結合を解除された。
ポインタが DEALLOCATE 文によって解放された。
ポインタに空状態のポインタ (または NULL 組込み関数) が代入された。
ポインタが指示先に結合されると,ポインタの定義状態は,指示先の定義状態に応じて定義済みまたは不定となります。指示先は以下の場合に不定の状態にあります。
一度も割り付けられていない場合
ポインタを通して解放されていない場合
RETURN または END 文によって不定の状態となった場合
ポインタが定義可能な指示先に結合されている場合,ポインタの定義状態は,変数の規則に従って定義済みまたは不定となります。
ポインタの結合状態が空状態または不定の場合,ポインタの引用や解放は行えません。
その結合状態にかかわらず,ポインタはつねに結合解除,割付け,または指示先との結合を行うことができます。結合解除されたポインタは空状態になります。割り付けられたポインタは,結合されますが,不定の状態にあります。指示先に結合されたポインタの結合状態と定義状態は,その指示先によって決定されます。
関連情報