Figure 1E: Example written in CL /* To compile: CRTBNDCL PGM(EXAMPLE1E) */ PGM DCL VAR(&PTR) TYPE(*PTR) DCL VAR(&SZ) TYPE(*INT) VALUE(16) DCL VAR(&BASED_DATA) TYPE(*CHAR) LEN(16) STG(*BASED) + BASPTR(&PTR) /* allocate 16 bytes of storage from the heap */ CALLPRC PRC('malloc') PARM( (&SZ *BYVAL) ) RTNVAL(&PTR) /* set the allocated storage */ CHGVAR VAR(&BASED_DATA) VALUE('abcdefghijklmnop') /* deallocate storage */ CALLPRC PRC('free') PARM( (&PTR *BYVAL) ) ENDPGM