![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
NiCketT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 10.9.2007 Репутация: нет Всего: нет |
1. Неработают деструкторы (я их закоментировал)
2. В конце проги постоянно выскакивает какая-то ошибка. 3. В релизе выскакивает та же самая (или похожая) ошибка, только уже в начале проги (т.е. релиз неработает) Хелппп!!! ![]() Присоединённый файл ( Кол-во скачиваний: 19 ) ![]() |
|||
|
||||
rrrFer |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.5.2008 Где: Красноярск Репутация: 1 Всего: 1 |
NiCketT
у меня никаких ошибок не выскакивет, напиши где именно и какая Это сообщение отредактировал(а) rrrFer - 23.5.2008, 09:39 |
|||
|
||||
rainbow86 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 27.10.2005 Репутация: нет Всего: нет |
А почему ты думаешь что не работают деструкторы. Если есть new значит где то должен быть delete!!! Большая вероятность того что именно из-за этого и вылетает в конце!!!
Добавлено через 2 минуты и 31 секунду расскоментируй деструкторы и посмотри что происходит после сортировки
Указатели на массивы городов в второй и третьей стране становятся невалидными!!! |
|||
|
||||
pilotnet |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 22.4.2008 Репутация: нет Всего: нет |
У меня вылетает на функции
не стал разбираться но рекомендую убрать все массив и заменить их на вектора и всегда проверяй индексы - это стандартная ошибка новичка(и не только новичка) а в данном случае вообще можно отказатся от указателей и сделать все статически это куда надежней и никаких деструкторов не надо |
|||
|
||||
bronislav |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 334 Регистрация: 29.1.2008 Где: Украина::Донецк Репутация: нет Всего: 3 |
Дело, в том, что память, которая была распределена в конструкторе с пом. оператора new, автоматически т.е. без использования оператора delete освобождается в даструкторе.
Таким образом в дестуркторе ты пытаешься освободить память, которая тебе уже не пренадлежит и соответственно вылетве ошибка. -------------------- ![]() иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes |
|||
|
||||
NiCketT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 10.9.2007 Репутация: нет Всего: нет |
ухты! я и не знал.
т.е. можно обойтись вообще без деструкторов, я правильно понимаю? |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
bronislav |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 334 Регистрация: 29.1.2008 Где: Украина::Донецк Репутация: нет Всего: 3 |
Я не знаю с каких пор, но преподователь в универе рассказывал мне так. Потом я еще делал експеримент, выделяя память в конструкторе и не освобождая в деструкторе, и память освобождалась. Можеи это конечно и не по стандарту, но ... -------------------- ![]() иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes |
|||
|
||||
rrrFer |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.5.2008 Где: Красноярск Репутация: 1 Всего: 1 |
||||
|
||||
Artemon |
|
||||||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 1 Всего: 20 |
Прошу не вводить в заблуждение людей. Если вызвался деструктор, то значит он удалит сам объект, которому принадлежит. А если в объекте есть указатели на которые тоже была выделена память она так и останется выделенной, более того, она станет недоступной. пример:
В резальтате вызовится деструктор, который удалит объект A, затем вызовится delete [] Ptr, который удалит динамический массив. -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
||||||
|
|||||||
bronislav |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 334 Регистрация: 29.1.2008 Где: Украина::Донецк Репутация: нет Всего: 3 |
Cпасибо, за разъяснения! Буду знать и не вводить в заблужедние -------------------- ![]() иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes |
|||
|
||||
NiCketT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 10.9.2007 Репутация: нет Всего: нет |
Всем спасибо! Тема закрыта. Вопрос решон
![]() Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |