PDA

Ver la Versión Completa : Declarando un array dinámicamente


Neftali [Germán.Estévez]
30-06-2006, 11:23:51
¿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:


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:


GetMem( P, SizeOfInteger * DimX * DimY )