自由形式構文 | (許可されていない - %ALLOC 組み込み関数を使用) |
コード | 演算項目 1 | 演算項目 2 | 結果フィールド | 標識 | ||
---|---|---|---|---|---|---|
ALLOC (E) | 長さ | ポインター | _ | ER | _ |
ALLOC 命令は、演算項目 2 に指定された長さのデフォルトの動的データ域内の記憶域を 割り振ります。結果のフィールド・ポインターは、新しい動的記憶域を指し示すように 設定されます。 この記憶域は初期化されません。
演算項目 2 は小数点以下の桁がない数値でなければなりません。 これは、リテラル、定数、独立フィールド、サブフィールド、 テーブル名または配列要素のいずれかにすることができます。 この値の範囲は、1 から 16776704 です。 実行時に この値が範囲外になると、エラーとなり、状況 425 が出されます。 その 記憶域を割り振ることができない場合、エラーとなり、状況 426 が 出されます。このようなエラーが発生した場合、結果フィールド・ポインターは 変更されません。
結果フィールドは基底ポインター・スカラー変数 (独立フィールド、 データ構造サブフィールド、テーブル名、または配列要素) でなければなりません。
プログラム状況コードが 425 または 426 である 例外を処理するために、命令コード拡張 'E' またはエラー標識 ER を指定できますが、 両方を指定することはできません。 エラー処理の詳細について は、プログラム例外/エラーを参照してください。
詳細については、メモリー管理命令を参照してください。
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.
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.