Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Автоматическое управление памятью, Задолбало:) 
:(
    Опции темы
ManiaK
Дата 3.9.2004, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 5
Всего: 29



Ок, я дома сделаю простенький проект. Скомпилю и посмотрю. Если будет таже фигня, прошу проделать мой опыт ещё кому-нибудь...
PM MAIL WWW   Вверх
sergejzr
Дата 3.9.2004, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Попробуй дебаггером отловить место, откуда деструкция происходит первый раз wink.gif .

В Си++ такое случается иногда. Осоменно там, где бы никогда не догадался... Передал указатель куда нибудь, а там его раз и деструктировали smile.gif. Такое бывает если const не пользуешься smile.gif
Или Длльки деструктируют чё нить, или ДЛЛь в дебаг скомпилена smile.gif

Если окажется, что при первом вызове деструктора поинтер уже кривой, то придётся конечно долго искать.. Есть правда неплохая утилита. Ловит утечку памяти и возникновение ислючений...

Счас линьк посмотрю...
http://www.codeproject.com/tools/leakfinder.asp

Заинклудай в свой проект. Он создают файл с ексцепшонами и файл с утечкой. Очень удобно smile.gif
Но недеюсь всё таки не придётся столько искать.

А насчёт автоматики в Вижуале biggrin.gif Не, не слышал никогда. Там проверок не нужных (нужных тоже конечно) много..

Всегда, когда вылезает assert - это Вижуал smile.gif
ПС:
Кстати Компилятор не может такого говорить smile.gif. Об обьектах известно только, когда программа выполняется smile.gif


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
chipset
Дата 3.9.2004, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Цитата
Всегда, когда вылезает assert - это Вижуал

Вот это уж да mad.gif
Насчёт мемориликов, БаундсЧекером можешь пройтись.. (я правда никогда не пользовался :-/)


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
ManiaK
Дата 20.9.2004, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 5
Всего: 29



Итак. Эпопея продолжается.
Код

class X
{
X() { i = new int[..]; }
virtual ~X() { delete [] i; }// Вот тута бьють
int *i;
};

int main(int& argc, char* argv[])
{
   X x;

   return 0;
}


Объект x удаляется раньше, чем вызывается для него деструктор. Парадокс? Причём если сделать так:

Код

int main(int& argc, char* argv[])
{
   {
       X x;
   }

   return 0;
}


Усё будет в порядке. hmmm.gif
PM MAIL WWW   Вверх
chipset
Дата 20.9.2004, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Код

X() { i = new int[..]; }

Создание обьекта на стёке? withstupid.gif (у конструктора вообще такая, фигня может быть?)


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
ManiaK
Дата 20.9.2004, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 5
Всего: 29



Не понял, при чём тут приведённая цитата и стек. Создаётся динамический объект.
PM MAIL WWW   Вверх
Vyacheslav
Дата 20.9.2004, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



C++Builder 6. Без проблем
Код

сlass X
{
public:
X() { i = new int[100]; }
virtual ~X() { delete [] i;   }
int *i;
};

int main(int& argc, char* argv[])
{
X x;
return 0;
}



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
chipset
Дата 20.9.2004, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Visual C++ 2003, всё нормально...


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
ManiaK
Дата 20.9.2004, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 5
Всего: 29



Сории за проступ. Код немного другой. Не работает именно в 6ой студии. Может это у них глюк?
Код

class X
{
public:
X() : i((int*)malloc(120)) { }
virtual ~X() { free(i); }

int* i;
};

int _tmain(int argc, _TCHAR* argv[])
{
X x;

return 0;
}

PM MAIL WWW   Вверх
chipset
Дата 20.9.2004, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



всё пашет... :-/
Добавлено @ 12:37
Цитата
Может это у них глюк?

Скажем так - небольшая особенность tounge.gif


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0519 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.