Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Rückgabe Funktion = Dynamisches Array

  Alt 29. Nov 2010, 09:01
Moin,
[…]Wenn man High benutzt, muss man noch eins dazu addieren, da High den Index des letzten Elementes zurück. Bei einer Array Länge von vier und wenn das Array null basierend ist, wie bei dynamischen Arrays, dann liefert High drei. Das Array hat aber vier Elemente von null bis drei.
Anders ausgedrückt: Wenn du die Länge eines Arrays auf die Länge eines anderen setzen willst, dann machst du ja nicht:
Code:
Setze die Länge von Array A auf den letzten Index von Array B
Sondern:
Code:
Setze die Länge von Array A auf die Länge von Array B
Weil High()+1 muss nicht immer stimmen (ungetestet, kann sein dass ich falsch liege):
Delphi-Quellcode:
var
  x : array [10..15] of Int64;
  a : array of Int64;
begin
  SetLength(a, High(x)); // High(x) = 15
  ShowMessage('Das temporäre Array a hat die Länge von: ' + IntToStr(Length(a)) + #13#10 + 'Das Array x hat die Länge von: ' + IntToStr(Length(x)));
MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat