Controlled scalars, arrays, and members of structures and unions can have adjustable array extents, string lengths, and area sizes. In the following example, when the structure is allocated, A.B has the extent 1 to 10 and A.C is a varying character string with maximum length 5.
dcl 1 A ctl, 2 B(N:M), 2 C char(*) varying; N = -10; M = 10; alloc 1 A, 2 B(1:10), 2 C char(5); free A;