NEIN!
Copy kopiert immer nur EINE Dimension!
Wenn man ein mehrdimensionales Array mit Copy kopiert erhält man also nur eine Kopie der Zeiger auf die 2. Dimension.
Folglich bewirkt eine Änderung der Werte in der Kopie auch eine Änderung der Werte im Original!
Um das mehrdimensionale Array zu kopieren musst du dich über eine Schleife und alle Dimensionen durcharbeiten!
Delphi-Quellcode:
var a,b: array of array of Integer;
begin
setlength(a,5,5);
a[2,2] := 5;
b := copy(a);
a[2,2] := 9;
b[3,3] := 3;
showmessage(inttostr(a[3,3])); // --> 3
showmessage(inttostr(b[2,2])); // --> 9
end;