Dynamic arrays can be allocated, expanded, shrinked or deallocated at run time using SetLength procedure.
Example:
var MyArray: array of Integer; i: Integer; begin SetLength(MyArray, 20); for i:= 0 to High(MyArray) do MyArray[i]:= Random(20); for i:= 0 to High(MyArray) do Writeln(MyArray[i]); SetLength(MyArray, 0); // Deallocate end.