Einzelnen Beitrag anzeigen

peter314

Registriert seit: 3. Dez 2008
22 Beiträge
 
#1

Array ändert sich von allein

  Alt 27. Mai 2009, 21:10
Hallo allerseits.

Bei folgendem Text tritt ein kleines Problem auf, zu dem mir leider keine Lösung einfällt.
Delphi-Quellcode:
procedure TForm1.tausch(nr,num: integer);
var
speicher: integer; //zwischenspeicher für die zu tauschende Zahl
begin
ZugPos[nr]:= ZugPos[nr-1]; //ZugPos ist ein Array of Array of Array[0..1] of integer
speicher:= ZugPos[nr,num div 4,num mod 2];
ZugPos[nr,num div 4,num mod 2]:= ZugPos[nr,num div 4+1,num mod 2];
ZugPos[nr,num div 4+1,num mod 2]:= speicher;
end;
Dabei ändert sich ZugPos[nr] so wie es soll, jedoch wird dabei auch ZugPos[nr-1] verändert, sodass am Ende der prozedur beide Die gleichen Werte haben.

Ich hab gehört, dass durch die Übertragung der Werte ZugPos[nr]:= ZugPos[nr-1] nicht nur die Werte übergeben werden sondern auch der Speicherplatz. Damit meine ich das beide anschließend am Selben Ort gespeichert sind und somit auch die gleichen Werte haben.

Ob das nun stimmt oder auch nicht kennt irgendjemand eine Lösung für das Problem?

Danke
  Mit Zitat antworten Zitat