Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
Delphi 12 Athens
|
AW: Is this correct and Safe
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
|