Ein Klassiker: Zugriff auf leeres, dynamisches Array (auch Strings sind dynamische Arrays):
Delphi-Quellcode:
var
s : string;
i, anz_comment : integer;
begin
// Sinn & Zweck: Zähle alle Zeilen, die mit * beginnen
anz_comment : = 0;
for i:=0 to Memo1.Lines.Count-1 do
begin
s := Memo1.Lines[i];
// sollte die Zeile leer sein, also s ='' dann knallts hier richtig
// es gibt eine Zugriffsverletzung, denn s zeigt auf nil
// auch die Bereichsprüfung kann hier keinen Schutz bieten
if s[1] = '*' then
Inc(anz_comment);
end;