Re: Стоки в памяти
От: _spin_ Россия  
Дата: 06.11.05 07:53
Оценка: -1
Здравствуйте, zag2art, Вы писали:

Z>и они очевидно динамически будет увеличиваться во время работы со строкой. Во время своих экспериментов я обранужил, что строка хранится необыяным образом. Во первых, она всегда с нулевым символом на конце (ну это понятно

Z>для совместимости), а во вторый, перед самой строкой содержаться 2-е четырехбайтные служебные переменные. первая — размер строки, а вот вторая меня и интересует.
Z>Я покапался в служебных библиотечках и узнал, что она проверяется на 1, больше я ничего не узнал...
Z>Подскажите кто знает точно, что там с этой второй переменной....

Насколько я помню, обе эти служебные переменные определяют размер строки. Просто если вторая переменная не равнв нулю, то это признак WideString и используется обе переменные для определения размера.

procedure TfrmMain.Button4Click(Sender: TObject);
var
  s : string;
  ws : WideString;
begin
  s := 'simple string'; // BPX here
  ws := 'wide string';
  ShowMessage(s);
  ShowMessage(ws);
end;


на трассировке по процессору видно что и как, в общем-то.
... <<#4 — 05 Mambana No reason>>
Не восхрапи на работе, ибо храпом своим разбудишь начальника своего.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.