Ver Mensaje Individual
  #1  
Antiguo 30-06-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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