Delphi-Quellcode:
while P^ <> #0 do
begin
// add string to list
Strings.Add(P);
// move pointer to start of next string if any
Inc(P, SysUtils.StrLen(P) + 1); //hier kracht es bei Durchlauf >= 2.
end;
Liegt der Fehler vielleicht daran, dass +1 hinzugezählt wird, auch wenn P^ bereits #0 ist?
Muss es nicht heissen "while P^ > #0 do" oder so ähnlich?
Kürzlich hatte ich nämlich einen ähnlichen Fehler. Der hier ist schwieriger erkennbar, weil mit Pointern gearbeitet wird. Sowas ist doch bei Sachen, die so wenig Speicher belegen irgendwie absurd.