Hallo!
Ich habe folgenden Testcode um einige Zeichenketten im brute-force-style zu generieren.
Delphi-Quellcode:
var s:string;p:pchar;i:integer;
begin
s := #97; //#97 = 'a'
p := pchar(s);
for i := 1 to 5000 do
begin
writeln(s);
if p^ = #122 then //#122 = 'z'
begin
s := s + #97;
inc(p);
end
else
inc(p^);
end;
writeln('ok');
readln
end.
An diesem Code scheint irgendwas nicht zu stimmen. Von a bis zzza werden alle Zeichenketten korrekt generiert, aber danach ändert sich nichts mehr und irgendwann tritt ein Integerüberlauf in der Zeile inc(p^) auf.
Kann mir jemand sagen was daran falsch ist? Es hat wahrscheinlich etwas mit dem Zeiger (PChar) zu tun, oder?