Me he permitido elaborar un par de ejemplos sobre la asignación de matrices dinámicas (
dynamic arrays). Van a perdonar las posibles faltas ortográficas, pero es que mi Word se trabó.
Código Delphi
[-]Type
TDynArray = Array Of Integer;
Var
A1 :TDynArray;
procedure TForm1.Button1Click(Sender: TObject);
Var
A2 :TDynArray;
begin
A2 := A1;
SetLength (A2, 6);
ShowMessage (Format ('Longitud de A1: %d', [Length (A1)]));
ShowMessage (Format ('Longitud de A2: %d', [Length (A2)]));
A2 [0] := 30;
ShowMessage (IntToStr (A1 [0])); ShowMessage (IntToStr (A2 [0]));
ShowMessage (IntToStr (A1 [4])); ShowMessage (IntToStr (A2 [4]));
end;
procedure TForm1.Button2Click(Sender: TObject);
Var
A2 :TDynArray;
begin
A2 := A1;
A2 := Copy (A1);
A2 [0] := 30;
ShowMessage (IntToStr (A1 [0])); ShowMessage (IntToStr (A2 [0])); end;
Initialization
SetLength (A1, 5);
A1 [0] := 10;
A1 [1] := 11;
A1 [2] := 12;
A1 [3] := 13;
A1 [4] := 14;
end.
Una aclaración que considero importante: A diferencia de las cadenas de caracteres, las matrices dinámicas no emplean el mecanismo de "
copiar al escribir", por lo cual es necesario asegurarnos de tener una copia verdadera antes de hacer algo como:
Las funciones SetLength y Copy garantizan lo anterior.
Un saludo.
Al González.