Hi!
Ich nutze D7 Pro und habe das RangeChecking aktiviert. Trotzdem trat folgende Situation auf:
Delphi-Quellcode:
while j < length(kante)-1+i do // j=i+2;
begin
setlength(save, j-i-1);
save[j-2]:=kante[j-1];
[... ]
Im Fall i=0 ging das ganze gut. Länge von save war 1, an stelle 0 konnte ich also schreiben. Bei i=1 gings ja dann schief. Länge war 1 (3-1-1), er versuchte aber an Stelle 1 (3-2) zu schreiben.
Es kam zu keiner Fehlermeldung, allerdings hat natürlich der weitere Programmablauf "Schaden" genommen, da ja in Save was falsches drinstand.
Delphi-Quellcode:
while j < length(kante)-1+i do
begin
setlength(save, j-i-1);
save[j-2-i]:=kante[j-1];
[... ]
Wieso warnt mich die Bereichsprüfung da nicht? Geht das nur bei statischen arrays?
Wie kann man solche Fehler verhindern?`
Ciao Frederic