Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, 言語解説書

基底付き変数のための FREE ステートメント

FREE ステートメントは、基底付き変数や被制御変数に割り振られている ストレージを解放します。

構文図を読む構文図をスキップする         .-,----------.
         V            |
>>-FREE----| option |-+--;--| option: |------------------------->
 
>--+-----------------------+--based-variable-------------------->
   '-locator-reference -> -'
 
>--+-------------------+---------------------------------------><
   '-IN(area-variable)-'
 
locator-reference ->
基底付き変数の特定の世代を解放します。 複合記号 -> は、「〜で修飾された」または「〜を指す」という意味を 表します。 基底付き変数が明示的にロケーターで修飾されていない場合は、BASED 属性で宣 言されたロケーター変数が、解放されるデータの世代を識別するために使われます。 ロケーターが 1 つも宣言されていない場合、このステートメントはエラーに なります。
based variable
添え字なしの、レベル 1 の基底付き変数でなければなりません。
IN
解放されるストレージが区域内に割り振られている場合は、このオプションを指定するか、または基底付き変数を、対応する区域と一緒に宣言されたオフセットで修飾しなければなりません。 基底付き変数が区域内に割り振られていない場合は、IN オプションを 指定することはできません。 割り振り時に区域を指定すると、基底付きストレージがターゲット区域の中に割り振られます。 このような割り振りは、IN オプションでターゲット区域を指定すれば解放することができます。

基底付き変数と被制御変数の両方を、同一の FREE ステートメントで 解放することができます。 被制御変数の構文については、被制御変数のための FREE ステートメントを参照してください。

基底付き変数を使用してストレージを解放することができるのは、それと同じデータ属性を持つ基底付き変数に割り振られているストレージを解放する場合だけです。

解放されるストレージの大きさは、基底付き変数の属性 (ストレージ解放の時点での境界または長さ、あるいはその両方を含む) に左右されます。 ユーザーは、この大きさが割り振られたストレージの大きさと一致しているかを判別する必要があります。 変数が割り振られていない場合の結果は予測不能です。

暗黙の開放

基底付き変数は、必ずしも FREE ステートメントで明示的に解放する必要はありません。しかし、(FREE ステートメントで) 基底付き変数を明示的に解放することをお勧めします。

基底付きストレージはすべて、プログラムの終了時に解放されます。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)