Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#6

AW: Ansistring , shortstring

  Alt 14. Apr 2020, 21:04
Doch, beim ShortString ist es "erstmal" der richtige Speicher, da hier kein Pointer im Typ steckt,
aber hier ist das erste Byte/Zeichen, die berühmte [0], das Längenbyte.

Zur Fehlerprävention würde ich aber auch hier immer mit @FText[0] arbeiten, bzw. [1] und SizeOf-1,
Für den erzeugten Binärcode hat es praktisch keine Auswirkung, aber besser immer machen und dann nicht einmal ausversehn bei den LongStrings vergessen.

Das ZeroMemory sorgt am Ende auch nur dafür, dass der speicher hinter dem String Text mit 0 gefüllt ist.
ShortStrings haben standardmäßig auch keine abschließende #0, da hier ausschließlich das LängenByte gilt und der ungenutzte Speicher "kann" unbestimmt/zufällig sein.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (14. Apr 2020 um 21:10 Uhr)
  Mit Zitat antworten Zitat