Главная страница
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.025 c
5-1097327118
Navi
2004-10-09 17:05
2005.09.04
Коллекции


14-1123592639
VVV?VVV
2005-08-09 17:03
2005.09.04
basic в excel e


14-1123576142
cspr
2005-08-09 12:29
2005.09.04
подключение 2-х компов с помощью розеток


2-1065376913
Оля85
2003-10-05 22:01
2005.09.04
Как вычислить значение функции


6-1116403255
yk
2005-05-18 12:00
2005.09.04
Сколько пингов можно запустить одновременнно ?