![]() |
[Bug oder Feature?] Array-Verkopplung
Hallo Delphianer,
mir ist gestern etwas interessantes aufgefallen. Ich habe zwei Arrays, die fast identische Namen haben, das eine hat allerdings einen Buchstaben mehr im Namen:
Delphi-Quellcode:
Wenn ich nun Stat[101] abfrage, kommt als Ergebnis der String, der in LStat[0] steht, raus.
Stat: Array[1..100] of String;
LStat: Array[0..200] of String; Das ganze verfolgt das Muster, dass sobald das Array Stat zu Ende ist (=> Exception?), mit dem Array LStat begonnen wird. Und das wird dann schön weitergehzählt. Stat[1] liefert Stat[1] ... Stat[100] liefert Stat[100] Stat[101] liefert LStat[0] Stat[102] liefert LStat[1] u.s.w. In die Gegenrichtung funktioniert es auch: LStat[-1] liefert mit Stat[100] D.h. Delphi schließt das Array LStat an das Array Stat an. Warum? |
Re: [Bug oder Feature?] Array-Verkopplung
Delphi fordert für die Arrays Speicher vom BS an, da die Anforderung aufeinenader folgt, wird der Speicher so zugeteilt.
|
Re: [Bug oder Feature?] Array-Verkopplung
Wahrscheinlich liegen die Arrays zufälligerweise hiuntereinander im Speicher. Mehr dürfte nicht dahinterstecken.
|
Re: [Bug oder Feature?] Array-Verkopplung
Schalte die Bereichsprüfung ein ;)
Ein Stat[x] ist im Grunde ein (@Stat + x)^ ;) |
Re: [Bug oder Feature?] Array-Verkopplung
Ich stelle die Gegenfrage: Wieso nicht?
Wenn du Range-Checks aktivierst, soltle Delphi aber trotzdem eine Exception werfen. Edit: wtf? 3 Antworten und kein Kasten? |
Re: [Bug oder Feature?] Array-Verkopplung
Ok, Problem gelöst :)
Wenn ich irgendeine Variable zwischen drin deklariere und ihr einen Wert zuweise, funktioniert's nichtmehr. Danke für des Rätsels Lösung :thumb: Edit: ich hatte das Prob noch nie, da ich immer innerhalb der definierten Bereiche blieb. Und nun hatte ich zwei Arrays mit iwie zusammenhängenden Namen und das Problem trat auf. Da dachte ich gleich an die Illuminaten :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz