|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.12.2009, 18:19 | #1 |
Пользователь
Регистрация: 26.11.2009
Сообщений: 34
|
(BC 3.1) Распределение памяти!
Доброго времени суток!
Есть программа, которая работает корректно, но при завершении работы выскакивает с ошибкой. Как я понимаю проблемы с выделением памяти. Вот примерный алгоритм работы с памятью в моей программе: конструкторы: Код:
Код:
При попытки сделать перераспределение данные вообще отображаются некоректно! вот как примерно я обращаюсь к своим данным: Код:
Изучаю Си\Си++
|
28.12.2009, 19:00 | #2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Для динамически выделенных массивов(new[]) используется соответствующий оператор их освобождения(delete[])
Код:
|
28.12.2009, 23:22 | #3 | |
Пользователь
Регистрация: 26.11.2009
Сообщений: 34
|
Цитата:
delete[] nums; } //указатеь на этой строке и нажимая кнопку F7 выкидывает... в чем мб проблема?)
Изучаю Си\Си++
|
|
28.12.2009, 23:25 | #4 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
По коду, который Вы предоставили так и не скажешь ) Есть подозрения, что Вы передаёте объект класса в какую-то ф-цию по значению, но не определив конструктор копирования, при этом при выходе из ф-ции вызывается деструктор. Таким образом система пытается освободить память 2 или больше раз, что приводит к вылету
Последний раз редактировалось netrino; 28.12.2009 в 23:42. |
28.12.2009, 23:29 | #5 | |
Пользователь
Регистрация: 26.11.2009
Сообщений: 34
|
Цитата:
и можно по подробней насчет "передавая объект класса в функцию !по значению!" п.с. вылетает, когда захожу в перегруженные операторы
Изучаю Си\Си++
Последний раз редактировалось Lawliet32; 28.12.2009 в 23:31. |
|
28.12.2009, 23:31 | #6 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
по значению значит не по ссылке/указателю
Код:
|
28.12.2009, 23:39 | #7 | |
Пользователь
Регистрация: 26.11.2009
Сообщений: 34
|
Цитата:
Программа очень большая конструкторы копирования дописал на всякий случай... Теперь не выкидывает из программы... а когда завершаю работу... появляется синий рабочий экран BC 3.1 нажимаю Alt+X (Exit) и появляется ошибка UNHANDLED EXCEPTION как я понимаю необработанное исключение где-то в коде... Нет ли у Вас быстрого способа найти вредный код?
Изучаю Си\Си++
|
|
28.12.2009, 23:44 | #8 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Ну раз ошибка появляется при выходе из борланда, то скорее всего к Вашей программе это отношения не имеет )
Трудно что-либо говорить, не имея возможности взглянуть на код |
28.12.2009, 23:49 | #9 | |
Пользователь
Регистрация: 26.11.2009
Сообщений: 34
|
Цитата:
Трассируя программу доходит до конца просто отлично и выходит из борланда замечательно... если у Вас есть время могу предоставить код (работа с числами большой точности - длинная арифметика с плавающей точкой) сложение отлично работает а вот вычитание и умножение шалят((( напишите если заинтеристует е-mail в личку = )
Изучаю Си\Си++
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача на массивы.Язык С.Динамическое распределение памяти | Bella | Помощь студентам | 1 | 22.10.2009 17:45 |
Динамическое распределение памяти | ManU | Общие вопросы Delphi | 0 | 13.10.2009 10:24 |
Распределение динамической памяти в Borland C++ 3.1! | CePryH | Помощь студентам | 3 | 15.06.2009 23:59 |
Распределение памяти | Jeni | Общие вопросы Delphi | 6 | 31.03.2008 19:59 |