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

Вниз

Счетчик ссылок.   Найти похожие ветки 

 
vlad0   (2007-10-05 10:17) [0]

Просто стало интересно, а можно ли узнать значение счетчика ссылок у string"овой переменной например?

var
 str1, str2, str3: string
begin
 str1 := "hi";
 str2 := str1;
 str3 := str1;
......


 
Инс ©   (2007-10-05 10:25) [1]

Можно, а зачем? Вообще так:

RefCnt:=PInteger(PChar(str) - 8)^;


 
Однокамушкин   (2007-10-05 10:31) [2]


> vlad0   (05.10.07 10:17)  
> var
>  str1, str2, str3: string
> begin
>  str1 := "hi";
>  str2 := str1;
>  str3 := str1;

Если в данном случае использовать метод Инс ©   (05.10.07 10:25) [1], счётчик ссылок получится -1, но это не значит, что метод неправильный, просто строки, заданные литералами, для экономии памяти ссылаются прямо на сам литерал в коде, а не на его копию в динамической памяти, а чтобы отличать "литеральные" строки от "динамических", для "литеральных" счётчик ссылок всегда делают -1

Если хотите получить "правильное" значение счётчика, после str1 := "hi" поставьте UniqueString(str1) - это приведёт к тому, что литерал скопируется в динамическую память, и str1 начнёт указывать на эту копию, а не на сам литерал



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
6-1171023506
Alek_1
2007-02-09 15:18
2007.10.28
Как определить хендл открытого удаленного подключения к ине...


15-1190830349
Вася Правильный
2007-09-26 22:12
2007.10.28
Как в Опере скопировать содержимое страницы


1-1186721899
Ануфрий
2007-08-10 08:58
2007.10.28
Обновление программы динамически через интернет


15-1191066703
TurboDelphi_Help
2007-09-29 15:51
2007.10.28
Что качать?


2-1191816353
NGPOL
2007-10-08 08:05
2007.10.28
Нулевые строки в отчетах