Bonjour à toutes et tous !
J'aurais besoin de savoir comment une AnsiString est stockée en mémoire. Je travaille avec un autre compilateur Win32 (Virtual Pascal), qui assure la compatibilité avec Delphi (notamment les AnsiStrings).
Voici ce que je pense avoir compris :
- s contient un pointeur vers un bloc dans le tas global;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Var s : String; ... s := 'Bonjour';
- le bloc est structuré comme suit :
- - à l'adresse ( s - 8 ) : compteur de références (dword);
- à l'adresse ( s - 4 ) : longueur de la chaîne (dword);
- à l'adresse s : 'Bonjour'#0
Suis-je dans le bon ?
Merci à celles et ceux qui se pencheront sur la question.
Partager