Dynamically allocates memory, and can associate it with the calling program.
Syntax:
call "CBL_ALLOC_DYN_MEM" using mem-pointer
by value mem-size
flags
returning status-code
Parameters:
|
Using call prototype (see
Key)
|
Picture
|
mem-pointer
|
cblt-pointer
|
usage pointer. Must be level 01.
|
mem-size
|
cblt-os-size
|
pic x(4) comp-5
or
pic x(8) comp-5 (64-bit native programs only)
|
flags
|
cblt-os-flags
|
pic x(4) comp-5
or
pic x(8) comp-5 (64-bit native programs only)
|
status-code
|
See
Library Routines - Key
|
|
On Entry:
-
mem-size
- The number of bytes of memory to allocate.
-
flags
- The type of memory required. You can set the following bits:
-
Bits 0-1
|
Reserved. Must be set to 0.
|
Bit 2
|
Allocate this memory independently from any calling program.
|
Remaining bits
|
Reserved. Must be set to 0.
|
On Exit:
-
mem-pointer
- A pointer to the memory allocated. The allocated memory is not initialized.
-
status-code
-
0
|
Successful allocation
|
157
|
Unable to allocate memory
|
181
|
Contradictory
flags specification
|
Comments:
The memory allocated is not initialized to any value.
The maximum size of this allocated memory is restricted only by your operating system (unless the -l run-time switch is set).
If bit 2 is not set the memory allocated by CBL_ALLOC_DYN_MEM is freed when the program that allocated it is canceled (logically or physically), if there is a COBOL program that is directly or indirectly the caller. If bit 2 is set, this memory is freed when the run unit terminates, if it has not been previously freed by CBL_FREE_DYN_MEM.