¿Cómo declaro un array dinámico? Quiero decir que no sé antes de compilar qué tamaño va a tener.
Prueba el siguiente código:
Código Delphi
[-]
type
PIntArray = ^TIntArray;
TIntArray = array[ 0..0 ] of Integer;
procedure TForm1.Button1Click(Sender: TObject);
var
P: PIntArray;
n: Integer;
begin
GetMem( P, 100 * SizeOf( Integer ) );
try
for n := 0 to 99 do
P^[ n ] := n * 2;
for n := 0 to 99 do
ListBox1.Items.Add( IntToStr( P^[ n ] ) );
finally
FreeMem( P, 100 * SizeOf( Integer ) );
end;
end;
Debido a la sintaxis no estricta para punteros, puedes eliminar los "^" tranquilamente. Como te puedes imaginar, para crear una matriz de enteros de dos dimensiones tendrías que pedir:
Código Delphi
[-]
GetMem( P, SizeOfInteger * DimX * DimY )