Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: setlength(array,0); setlength(array,10);

  Alt 11. Sep 2004, 23:27
Globale Variablen und Objektfelder sind Nullinitialisiert bzw. so wie es gerade dem Typ als "leer" entspricht. (Numerische Werte = 0; Booleans = false; String und ShortString = ''; Pointer = nil; usw...)
Bei lokalen Variablen kann man sich, wie gesagt, nie darauf verlassen! Auch wenn du das Array erst wieder verkleinerst, bzw. gerade dann nicht. Mit etwas Pech wird ein völlig neuer Speicherbereich alloziiert in dem alles möglich drin stehen kann, und im günstigsten Fall wird das Array am selben Offset wie vorher anfangen. Dann hast du halt deine alten Werte drin, und was dahinter steht ist wieder ein Fall für nen Wahrsager .
Um eine Initialisierungsschleife wirst du nicht rum kommen.

gruss,
dizzy
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat