Einzelnen Beitrag anzeigen

Peter1999

Registriert seit: 13. Dez 2007
Ort: Dresden
88 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Mehrdimensionalles Dynamisches Array Kopieren.

  Alt 7. Mär 2013, 15:00
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;
  Mit Zitat antworten Zitat