Форум: "Начинающим";
Текущий архив: 2007.10.28;
Скачать: [xml.tar.bz2];
ВнизСчетчик ссылок. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.044 c