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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
1-8835
tavwizard
2002-01-19 16:49
2002.02.04
add-in для Delphi


3-8792
vygantas
2002-01-08 12:41
2002.02.04
D6 и MySQL


1-8917
Eraser
2002-01-17 09:13
2002.02.04
Расположение фрейма на форме


1-8825
Yuraz
2002-01-19 16:53
2002.02.04
Вопрос не столько по графике, сколько об написании кода


6-8966
Dup
2001-11-12 10:37
2002.02.04
IP юзера