Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
FreePascal / Lazarus
|
AW: Zeiger auf eine Klasse
11. Aug 2013, 16:11
Danke für eure Hilfe.
Ich habe jetzt mehrere Varianten probiert und habe festgestellt, dass ich in obigen Beispiel nur einen Syntaxfehler hatte
@NamenLozer: Nach deiner Meinung sollte ich Variante 3 nehmen (siehe Code), oder? In Bezug auf die Performance ist diese Variante doch schlecht, weil das komplette Array nochmals kopiert werden muss.
Edit: Variante 1 und 2 hingegen verändern direkt den Inhalt von "PointsRotor" ohne zusätzlichen kopiervorgang.
Du hast mich wohl missverstanden.
Delphi-Quellcode:
var
A,B: array of integer;
begin
SetLength(A, 3);
A[0] := 1;
A[1] := 2;
A[2] := 3;
writeln('A: ', A[0], ', ', A[1], ', ', A[2]);
// => A: 1, 2, 3
// REFERENZ
B := A;
writeln('B: ', B[0], ', ', B[1], ', ', B[2]);
// => B: 1, 2, 3
B[1] := 42;
writeln('B: ', B[0], ', ', B[1], ', ', B[2]);
// => B: 1, 42, 3
writeln('A: ', A[0], ', ', A[1], ', ', A[2]);
// => A: 1, 42, 3
// KOPIE
B := Copy(A, 0, length(B));
B[0] := 2;
B[1] := 5;
B[2] := 7;
writeln('B: ', B[0], ', ', B[1], ', ', B[2]);
// => B: 2, 5, 7
writeln('A: ', A[0], ', ', A[1], ', ', A[2]);
// => A: 1, 42, 3
end.
Ist das Prinzip jetzt klar?
Geändert von Namenloser (11. Aug 2013 um 16:21 Uhr)
Grund: typo
|