Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.04;
Скачать: CL | DM;

Вниз

А что есть AnsiString ?   Найти похожие ветки 

 
CHES ©   (2005-08-11 13:50) [0]

У Тейксейры и Пачеко написано, что AnsiString представляет собой структуру в памяти в которой хранится: размер памяти выделенный строке, количество ссылок на нее, длина, собственно данные строки и завершающий 0.

Когда я объявляю s: string; то что есть s?
У меня 2 варианта
1. s - указатель на структуру в памяти
2. s - адрес по которому лежит указатель на структуру в памяти

Пока пытался понять наваял следующее:


 s1,s2: string;
 p: Pointer;
begin
 s1:="Stroka 1";
 s2:="Stroka 2";
 p:=pointer(@s1);
 s2:= string(p^);
 ShowMessage(s2);


Показывает "Stroka 1", выходит верен  2-й вариант ?


 
DiamondShark ©   (2005-08-11 13:54) [1]


> Когда я объявляю s: string; то что есть s?
> У меня 2 варианта
> 1. s - указатель на структуру в памяти
> 2. s - адрес по которому лежит указатель на структуру в
> памяти

Ни первое, ни второе.

s -- это указатель на данные в строке, а служебные поля лежат перед данными.
т.е. s -- это указатель внутрь структуры, описанной у ТиП.


 
Юрий Зотов ©   (2005-08-11 13:54) [2]

Указатель на структуру в памяти. Он же указывает на тело строки (поскольку служебные данные хранятся по отрицательному смещению от этого адреса).


 
CHES ©   (2005-08-11 14:08) [3]

Не зря спросил.
Спасибо за ответы.



Страницы: 1 вся ветка

Текущий архив: 2005.09.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.043 c
1-1123968257
Конф
2005-08-14 01:24
2005.09.04
Как рисовать белым на прозначном TImage ?


14-1122809211
Piter
2005-07-31 15:26
2005.09.04
Книга дракона


14-1123752846
.ruslan
2005-08-11 13:34
2005.09.04
Смена дизайна на www.delphimaster.ru


3-1122201185
NickMan
2005-07-24 14:33
2005.09.04
ADO и BDE не уживаются в одном приложении


6-1116530816
Positive
2005-05-19 23:26
2005.09.04
Открытые порты