ALLOC (記憶域の割り振り)

自由形式構文 (許可されていない - %ALLOC 組み込み関数を使用)
コード 演算項目 1 演算項目 2 結果フィールド 標識
ALLOC (E) 長さ ポインター _ ER _

ALLOC 命令は、演算項目 2 に指定された長さのデフォルトの動的データ域内の記憶域を 割り振ります。結果のフィールド・ポインターは、新しい動的記憶域を指し示すように 設定されます。 この記憶域は初期化されません。

演算項目 2 は小数点以下の桁がない数値でなければなりません。 これは、リテラル、定数、独立フィールド、サブフィールド、 テーブル名または配列要素のいずれかにすることができます。 この値の範囲は、1 から 16776704 です。 実行時に この値が範囲外になると、エラーとなり、状況 425 が出されます。 その 記憶域を割り振ることができない場合、エラーとなり、状況 426 が 出されます。このようなエラーが発生した場合、結果フィールド・ポインターは 変更されません。

結果フィールドは基底ポインター・スカラー変数 (独立フィールド、 データ構造サブフィールド、テーブル名、または配列要素) でなければなりません。

プログラム状況コードが 425 または 426 である 例外を処理するために、命令コード拡張 'E' またはエラー標識 ER を指定できますが、 両方を指定することはできません。 エラー処理の詳細について は、プログラム例外/エラーを参照してください。

詳細については、メモリー管理命令を参照してください。

図 248. ALLOC 命令
 D Ptr1            S               *
 D Ptr2            S               *
 C                   ALLOC     7                 Ptr1
  * Now Ptr1 points to 7 bytes of storage
  *
 C                   ALLOC (E) 12345678          Ptr2
  * This is a large amount of storage, and sometimes it may
  * be unavailable.  If the storage could not be allocated,
  * %ERROR will return '1', the status is set to 00426, and
  * %STATUS will return 00426.