Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
10. Jun 2009
das Inc fällt hier fast garnicht auf ... könnte auch aLen:=aLen+1; nehmen und es ändert sich nix.
bei obrigen Code (lezter Post), wird einfach nur das Array immer um 1 vergrößert,
ebenso wie hier ... hier wird die Länge auf i gesetzt und i ist 1 größer als die Länge:
var
a: Array of Integer;
aLen, i, i2, i3: Integer;
C, C2: LongWord;
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
10. Jun 2009
var
a: Array of Integer;
aLen, i, i2, i3: Integer;
C, C2: LongWord;
begin
C := GetTickCount;
for i2 := 1 to 10000000 do begin
i := Length(a);
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
10. Jun 2009
wenn die Größe des Arrays geändert wird,
wird eine neues Array angelegt, der Inhalt kopiert, die alte Version gelöscht und der Zeiger zum neuen Array in die Variable eingetragen ... also mit jeder änderung wird das Array kopiert.
Wenn man da einen größeren Sprung nutzt, dann mußt nicht mehr bei jeder änderung das Array geändert/kopiert werden.