Главная страница
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.021 c
1-79866
staryx
2004-02-06 11:59
2004.02.25
Меню а-ля


14-80155
Knight
2004-02-05 19:07
2004.02.25
Офисные АТС


1-79808
DimonNew
2004-02-11 12:36
2004.02.25
создание формы


14-80109
hatchy
2004-02-03 07:34
2004.02.25
Секундомер...


14-80095
Set
2004-02-03 12:18
2004.02.25
AdobePhotoShop7.0 Rus