Форум: "Потрепаться";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
ВнизА что есть 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c