Hola.
Solo una aclaración sobre la devolución de arreglos dinámicos. Como está escrita la funcion
ObtenerArreglo en el mensaje de
BDWONG, no se obtendría una copia del arreglo sino un apuntador al arreglo como se puede comprobar con este ejemplo:
Código Delphi
[-]
program Project2; {$APPTYPE CONSOLE}
uses
SysUtils;
type
TArray = array of Integer;
var
vec: TArray;
function RetArrayPtr: TArray;
begin
Result:= vec;
end;
function RetArray: TArray;
begin
SetLength(Result, Length(vec));
move(vec[0], Result[0], Length(vec)*Sizeof(Integer));
end;
var
v1,v2: TArray;
i: Integer;
begin
SetLength(vec, 10);
for i:= 0 to 9 do vec[i]:= i;
v1:= RetArrayPtr;
v2:= RetArray;
Write('v1, apuntador:');
for i:= 0 to 9 do write(v1[i]:3);
Writeln;
Write('v2, copia :');
for i:= 0 to 9 do write(v2[i]:3);
Writeln;
vec[0]:= 99;
Writeln(#10#13+'Luego de modificar arreglo original'+#10#13);
Write('v1, apuntador:');
for i:= 0 to 9 do write(v1[i]:3);
Writeln;
Write('v2, copia :');
for i:= 0 to 9 do write(v2[i]:3);
Finalize(vec);
Finalize(v1);
Finalize(v2);
Readln;
end.
Saludos