Главная страница
    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.52 MB
Время: 0.034 c
14-80093
Sergey_Masloff
2004-01-30 23:01
2004.02.25
Женщины-программисты


1-79966
plintus
2004-02-13 16:10
2004.02.25
Как из TWebBrowser вытащить HTML код страницы?


1-79704
Pa5ha
2004-02-08 20:06
2004.02.25
Listbox


1-79912
Mixa3
2004-02-10 01:16
2004.02.25
Как вернуть некоторое значение параметру процедуры?


6-80049
Buffoon
2003-12-22 14:35
2004.02.25
Ссылки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский