メモリを動的に割り当てます。割り当てられたメモリを呼び出し元のプログラムに関連付けることも可能です。
構文:
call "CBL_ALLOC_DYN_MEM" using mem-pointer
by value mem-size
flags
returning status-code
パラメーター:
|
呼び出しプロトタイプ使用時 (「説明の読み方」を参照) |
PIC |
mem-pointer |
cblt-pointer |
USAGE POINTER。レベル 01 にする必要があります。 |
mem-size |
cblt-os-size |
pic x(4) comp-5 または
pic x(8) comp-5 (64 ビットのネイティブ プログラムのみ)
|
flags |
cblt-os-flags |
pic x(4) comp-5 または
pic x(8) comp-5 (64 ビットのネイティブ プログラムのみ)
|
status-code |
「説明の読み方」を参照 |
|
入力パラメーター:
- mem-size
- 割り当てるメモリのバイト数。
- flags
- 必要なメモリのタイプ。次のビットを設定できます。
-
ビット 0 から 1 |
予約済み。0 に設定する必要があります。 |
ビット 2 |
いずれの呼び出し元プログラムからも独立したメモリとして割り当てます。 |
上記以外のビット |
予約済み。0 に設定する必要があります。 |
出力パラメーター:
- mem-pointer
- 割り当てられたメモリへのポインター。割り当てられたメモリは初期化されません。
- status-code
-
0 |
割り当て成功。 |
157 |
メモリを割り当てることができない。 |
181 |
flags の指定が矛盾している。 |
説明:
割り当てられたメモリについて、特定値への初期化は実行されません。
割り当てられるメモリの最大サイズはオペレーティング システムにのみ制限されます。
CBL_ALLOC_DYN_MEM でビット 2 を設定せずに割り当てられたメモリは、直接的または間接的な呼び出し元である COBOL プログラムがある場合、割り当てを行ったプログラムが論理的または物理的にキャンセルされると解放されます。ビット 2 を設定した場合は、CBL_FREE_DYN_MEM によって解放されていなければ、対応する実行単位が終了したときに解放されます。