Ver Mensaje Individual
  #1  
Antiguo 01-07-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Declarando un Array dinámicamente

¿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 )
Responder Con Cita