Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Fehler bei der Bereichsprüfung -Warum?


dalpers - Fr 02.09.05 13:07
Titel: Fehler bei der Bereichsprüfung -Warum?
Hi,

ein Freund von mit hat wärend er meine Exe ausgeführt hat die Meldung bekommen:
"Fehler bei der Bereichsprüfung"

Ich konnte den Fehler aber bisher nicht reproduzieren.

Was hat das mit der Bereichsprüfung auf sich? Dass das irgendwas mit den Speicherbereichen zu tun hat ist mir schon klar, aber bedeutet das jetzt?

Greift mein Programm auf falsche Bereiche zu? Irgendwie auf einen nicht definierten Index eines Arrays? oder hatte mein Kumpel nur zu wenig Arbeitsspeicher?

Kenne mich mit der Speicherverwaltung und so leider nicht aus.

Danke schonmal für eure Hilfe.

Gruß
Denise


Sprint - Fr 02.09.05 13:18

Menü-->Projekte--->Compiler--->Laufzeitfehler--->Bereichsüberprüfung

Ist dort ein Häkchen, dann bekommst du bei diesem Beispiel eine Fehlermeldung angezeigt. Ansonsten wird irgendwo ein Speicherbereich überschrieben oder du bekommst eine andere Fehlermeldung.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Button1Click(Sender: TObject);
var
  X: array of Integer;
begin

  SetLength(X, 1);
  try
    X[2] := 10;
  except
    on E: ERangeError do
      ShowMessage('oh... Mein Programm ist buggy.');
  end;
  SetLength(X, 0);

end;


dalpers - Mo 05.09.05 07:59

Danke,

war wirklich in einem Array unter bestiummten Bedingungen einen Index zuweit gegangen.

Problem ist jetzt behoben

VLG
Denise