Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.062 c
1-1123744158
Bios_
2005-08-11 11:09
2005.09.04
????? вместо строк


9-1115754839
Georgij
2005-05-10 23:53
2005.09.04
Как осуществить возведение в степень 1/3 ?


9-1115028563
new1
2005-05-02 14:09
2005.09.04
Как определить видит ли один бот другого бота??(Glscene)


2-1065076382
N0wheremany
2003-10-02 10:33
2005.09.04
---!! Перебор символов !! ---


6-1116523854
Dj_Dreamer
2005-05-19 21:30
2005.09.04
VPN! Организовать передачу файлов




   Наверх