Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   Declarando un Array dinámicamente (https://www.clubdelphi.com/foros/showthread.php?t=80677)

dec 01-07-2006 01:55:26

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 )

Crandel 26-11-2006 00:25:20

Este truco esta repetido. Original 141


La franja horaria es GMT +2. Ahora son las 13:49:42.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi