Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
Delphi 12 Athens
|
AW: Variante Records, Strings und 32 bzw. 64 Bit
26. Nov 2013, 22:08
Bei einem ShortString steht die aktuelle Stringlänge im ersten Byte. Danach folgen die einzelnen Zeichen (AnsiChar) bis zu der maximalen Länge. P1 und str liegen auf demselben Speicherbereich. Schreibst du auf str einen String von z.B. 20 Zeichen, steht im Längenbyte von P1 ebenfalls eine 20. Die Adressen von P2..P6 decken sich wegen der jeweiligen Längenbytes nicht mit den von dir erwarteten String-Positionen. Zusätzlich schlägt noch das Record-Alignment zu, das die Startadressen der Felder auf bestimmte Bytegrenzen legt.
Kurz: was du da vorhast geht so nicht.
|