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

Вниз

Размещение в памяти   Найти похожие ветки 

 
Sers   (2002-10-29 12:18) [0]

Что-то я запутался.

Если я делаю так:

procedure MyProcedure;
var edit : TEdit;
begin
edit:=TEdit.Create(nil);
end;

1. Где отводится память под edit - в динамической памяти, или в стеке ?
2. Соответственно, при выходе из процедуры, память освободится или нет ?


 
Anatoly Podgoretsky   (2002-10-29 12:27) [1]

Под ссылку в стеке, а остальное может быть в разных местах, что есть динамическая память, осводится только место под ссылку.


 
MBo   (2002-10-29 12:29) [2]

не освободится, только ссылка потеряется


 
Sers   (2002-10-29 12:33) [3]

То есть, как я понял при входе в процедуру в стеке отводится под ссылку память. При

edit:=TEdit.Create(nil);

под объект выделяется еще память.

При выходе из процедуры память занятая в стеке под ссылку освобождается, а та память, которая была выделена под объект не освобождается. То есть, это так называемая утечка памяти.

Я правильно понял ?


 
MBo   (2002-10-29 12:35) [4]

Да, абсолютно


 
Anatoly Podgoretsky   (2002-10-29 12:42) [5]

Абсолютно, а что бы этого не происходило - освобождай


 
Sers   (2002-10-29 12:47) [6]

В принципе я так и подозревал. Дело в том, я решил попробовать Bounds Checker v6.03 По идее, он должен отлавливать такие моменты. Если я подсовываю ему прогу откомпилированную C++ Builder"ом то все нормально - он замечет такие вещи. С прогой, откомпилированной с помощью Дельфи - не фига.

Может Bounds Checker не может работать с exe-шниками, полученными Дельвей.

В ProjectOptions-> Include DebugInformation галочка стоит, оптимизауия отключена, в чем же дело ?


 
VaS   (2002-10-29 12:52) [7]

[x] Include TD32 debug info



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

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

Наверх





Память: 0.45 MB
Время: 0.013 c
4-21872
Velocity
2002-09-25 08:55
2002.11.07
пара ламерских вопросов


1-21685
Andrew2
2002-10-28 11:04
2002.11.07
функция в dll


1-21587
Gamar
2002-10-30 10:28
2002.11.07
Компоненты под стиль OfficeXP


4-21885
_Alex_
2002-09-25 21:20
2002.11.07
графика


1-21514
Мефодий
2002-10-28 16:55
2002.11.07
Переключение раскладки клавиатуры в Excel в RunTime





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