Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
14-1123573058
boriskb
2005-08-09 11:37
2005.09.04
Есть у меня "пунктик"


4-1121706798
Trimp
2005-07-18 21:13
2005.09.04
Чтение из реестра переменных с типом REG_MULTI_SZ


14-1122646602
TUser
2005-07-29 18:16
2005.09.04
Басаев на TV


1-1123992098
Serg111
2005-08-14 08:01
2005.09.04
Цифровые видеокамеры PANASONIC NV-GS


1-1123744158
Bios_
2005-08-11 11:09
2005.09.04
????? вместо строк





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский