Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: String mit gzip (ent)zippen

  Alt 26. Mär 2007, 16:54
Nein, XYZ ist nur ein Zeiger auf einen "Record", wo dann die Stringdaten (Referenzzähler, Längenangabe und der Stringinhalt) drin sind.

sozusagen so:
Delphi-Quellcode:
TAnsiString = Record
  RefCount: Integer;
  Len: Integer;
  Data: Array[1..Len+1] of AnsiChar; // +1, da noch ein #0 hinten dran ist
End;

Pointer(xyz) = @TAnsiString.Data
Du kannst es dir wie eine KlassenReferenz vorstellen.

@xyz zeigt also nur auf einen Pointer, wo drin steht an welcher Stelle sich der StringRecord befindet.

"nur" PChar(xyz) und @xyz[1] zeigen also auf den Stringinhalt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat