Главная страница
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.038 c
4-80349
LOMic
2003-12-18 10:32
2004.02.25
Здравствуйте. Как получить HWND для SpeedButton ?


3-79589
ulyanitsky
2004-01-25 22:09
2004.02.25
Создание структуры БД. Что лучше?


1-79927
saska
2004-02-09 18:00
2004.02.25
Стринг-грид


1-79878
Developerr
2004-02-10 11:23
2004.02.25
Edit.Enabled=false;


1-79949
Khabibulin
2004-02-13 21:38
2004.02.25
ShellExecute