Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];

Вниз

Memory   Найти похожие ветки 

 
Soul   (2001-10-25 01:37) [0]

Мастера! Объясните пожалуйста зачем нужны GetMem и FreeMem когда можно вызывать просто .create и .free?


 
Иван Шихалев   (2001-10-25 01:48) [1]

Ты прикалываешься, что ли?
Или до Delphi только на piging english писал и слова "язык программирования" ровно вчера узнал?


 
MBo   (2001-10-25 08:29) [2]

Если не издеваешься, то про это надо читать и читать
Кратко - Getmem выделяет память под адресуемые указателем данные. Все.
Сreate создает экземпляр объекта, выделяя память под его данные, устанавливая таблицы виртуальных и дин. методов, инициализирует поля объекта, делает кучу работы по иерархии объекта.


 
wHammer   (2001-10-25 08:52) [3]

Ты, наверное, не работал никогда с данными, размещенными в динамической памяти, например с PChar"ом. Обо всем сказал MBo ©. Это абсолютно разные вещи.


 
Vitaly Nevzorov   (2001-10-25 17:05) [4]

Ну, блин, заклевали человека! Как будто сами сразу мастерами стали. По простому - объекты действительно создаются методом Create, но возможно создание других (не объектных) динамических структур. Наиболее применимые - это PChar - нуль-терминайтные строки, которые очень часто нужны при работе с Win API, это строка - кусок памяти, которую надо выделить перед использованием, а после использования удалить, для чего и применяются указанные операторы. Символом конца такой строки является #0 и ее длина нигде не храниться (в отличие от стандартных строк) поэтому компиллятор не может сам отследить выделение памяти - это надо делать в ручную. Никаких методов, в том числе и Create у PChar нет, так как он не является объектом.
Если что все еще не ясно - пиши email постараюсь объяснить, если сам знаю :)


 
Soul   (2001-10-26 01:27) [5]

А если я вызвал .create то мне надо вызывать .free или что-то вроде freemem? А то у меня при запущенном проекте память постоянно уменьшается и уменьшается (это я определил монитором памяти).


 
Mbo   (2001-10-26 07:44) [6]

Каждому Getmem должно соответствовать Freemem, каждому Create- Destroy или Free (Destroy с проверкой существования).



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

Форум: "Система";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
4-9036
Chup
2001-12-03 16:16
2002.02.04
Как убить процесс сеанса дос.


4-9024
Leviathan
2001-12-07 15:24
2002.02.04
Разрешение экрана


1-8858
Chak
2002-01-19 15:48
2002.02.04
Как убить DLL-ку, находящуюся в памяти?


3-8787
Андре
2002-01-08 10:24
2002.02.04
dbiRegenIndexes


1-8824
MJH
2002-01-19 18:17
2002.02.04
AnimatedMenus2000





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский