Einzelnen Beitrag anzeigen

Delfiano

Registriert seit: 13. Jul 2020
61 Beiträge
 
#19

AW: TDirectory.GetLogicalDrives

  Alt 17. Nov 2020, 15:39
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.
  Mit Zitat antworten Zitat