Thema: Delphi Is this correct and Safe

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Is this correct and Safe

  Alt 20. Aug 2010, 22:00
Der interne Pointer eines Strings und der anderen dynamischen Arrays zeigt absichtlich auf das erste Array-Feld/Char.
Vor diesem Feld/Char liegen dann Referenzzählung, Längenangabe und Co. .
Beim String liegt dann hinter dem String auch noch eine zusätzliche #0, obwohl es dieses für einen String mit Längenangabe nicht nötig währe.
(Abgesehn vom ShortString)

Durch die Position des Pointers und die #0 entspricht es "absichtlich" (ja, man hat sich dabei was gedacht) einem PChar, denn daruch kann eine Konverierung in einen PChar ohne Probleme und großen Aufwand vorgenommen werden, bzw. man kann es einfach ohne Konvertierung nutzen.

Nur die andere Richtung, von PChar nach String geht natülich nicht.
$2B or not $2B
  Mit Zitat antworten Zitat