Si vas a usar un arreglo, vas a tener que en algun lado mantener un indice, osea el lugar "actual", por decirlo de alguna manera, para saber cual fue la ultima posicion en la que guardaste el ultimo numero.
El arreglo dinamico es muy similar al estatico, la unica diferencia es que debes inicializarlo, y obviamente el compilador no puede ayudarte si "te vas de rango", mientras que el estatico no te va a permitir (a menos, no por defecto) utilizar posiciones fuera del rango permitido.
Asi usas un arreglo dinamico:
Código Delphi
[-]
procedure ArregloDinamico;
var
tamanoArreglo, unNumero: Integer;
numeros: array of Integer;
begin
tamanoArreglo := 10; System.SetLength(numeros, tamanoArreglo); numeros[0] := 1;
numeros[2] := 34;
numeros[9] := 5;
numeros[10] := 5;
unNumero := numeros[2];
end;