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

Вниз

Как получить String имея указатель и длину ?   Найти похожие ветки 

 
Vlad ©   (2004-02-11 15:41) [40]


> However, wide strings are not reference counted.

А каким же образом компилятор узнает когда нужно освобождать память ?


 
Тимохов ©   (2004-02-11 15:45) [41]


> А каким же образом компилятор узнает когда нужно освобождать
> память ?

Он умный.
Он же как-то узнает, что нужно освобождать память из под простых строк когда счетчик равен 0.
Просто он считает, что счетчие у widestring равен 1. Когда станет равен 0 - освободит.


 
Johnmen ©   (2004-02-11 15:48) [42]

>Vlad © (11.02.04 15:41) [40]

Не компилятор, а менеджер памяти...:)


 
Тимохов ©   (2004-02-11 15:52) [43]


> Не компилятор, а менеджер памяти...:)

Интересно какими понятиями Вы руководствуютесь когда делаете такое разделение?
Менеджер памяти никто, пока его явно не попросят что-то освободить. А просит то компилятор.


 
Serginio666   (2004-02-11 15:59) [44]

Одной ссылки достаточно

type
PStrRec = ^StrRec;
StrRec = packed record
refCnt: Longint;
length: Longint;
end;

var
P: PStrRec;
begin
P := Pointer(Integer(str) - sizeof(StrRec));
Len:=p.length;


 
Johnmen ©   (2004-02-11 16:13) [45]

>Менеджер памяти никто, пока его явно не попросят что-то освободить. А просит то компилятор.

Просит во время работы программы ?
:)


 
Тимохов ©   (2004-02-11 16:17) [46]


> Просит во время работы программы ?
> :)

Нет, в откомпиленном компилятором коде.
Что говорить - можно же цпу посмотреть в конце методов - там есть осовобождение локальных строк - это же заслуга компилятора поставить туда эти команды.
И вообще менеждер памяти тупая скотина - освобождает только то, что ему говрят из методов очистки мусора.


 
Vlad ©   (2004-02-11 16:20) [47]


> Johnmen © (11.02.04 16:13) [45]

Я так понимаю, что компилятор определяет когда и что нужно освобождать до запуска программы, когда преобразовывает все в ассемблерный код. Или я не прав ?


 
Johnmen ©   (2004-02-11 16:29) [48]

>это же заслуга компилятора поставить туда эти команды.

Заслуга компилятора - поставить туда вызовы ртл"ных функций...:)
^
>Vlad © (11.02.04 16:20) [47] !
!
Нет, не определяет. См. -------------!



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

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

Наверх




Память: 0.55 MB
Время: 0.033 c
9-79534
Soft
2003-08-15 16:15
2004.02.25
Ламерам-програмерам


14-80183
Начинающий веб-дизайнер
2004-01-30 11:06
2004.02.25
Вопрос в службу поддержки программы.


1-79766
Excel
2004-02-11 10:18
2004.02.25
Как программно скрыть столбцы в Excel ?


1-79906
Budy
2004-02-09 15:20
2004.02.25
Align у TEdit


4-80379
deema
2003-12-14 19:20
2004.02.25
Как определить ширину текста в пункте меню?