Advanced features / Runtime stack |
When returned by a function, dynamic arrays are pushed on the stack by reference. Therefore you can create a dynamic array in a function and return it to the caller for usage:
MAIN DEFINE arr DYNAMIC ARRAY OF INTEGER LET arr = create_array(10) DISPLAY arr.getLength() END MAIN FUNCTION create_array(n) DEFINE n, i INTEGER DEFINE arr DYNAMIC ARRAY OF INTEGER FOR i=1 TO n LET arr[i] = i END FOR RETURN arr END FUNCTION