Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
deamonSuitUp
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 27
#1

программа завершается аварийно - C++

03.09.2011, 03:54. Просмотров 803. Ответов 6
Метки нет (Все метки)

запускаю компилятор, все запустилось, работает (меню из кучи условий if-else). выбираю любой пункт меню и он работает, после этого надо вернуться на главное, но не пашет, вылезает ошибка - прекращена работа программы. в чем может быть дело? исключения не могу пока написать в код, ибо не позволяют, а до этого все норм было, добавил в условие еще одно и кажется усё. заранее признателен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2011, 03:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос программа завершается аварийно (C++):

Рекурсия, почему программа завершается аварийно? - C++
Подскажите, почему не работает рекурсия?? #include <iostream> using namespace std; void fn(int value) { fn(value); } int...

Программа аварийно завершается после оператора scanf - C++
Такая проблема. Я начинающий. Занимаюсь уже вторую неделю. Написал такой код, запускаю программа. Все хорошо, но стоит дойти программе до...

Проблемы с delete [], программа периодически аварийно завершается на строке с освобождением памяти. - C++
Добрый день! Столкнулся со следующей задачей: в программе требуется довольно часто изменять размеры массива, для чего использую...

Программа аварийно завершается с ошибкой "map/set iterators are incompatible" - C++
Добрый день! Проблема такая: в s1 и s2 рандомно добавляю числа, хочу найти объединение этих множеств. Если использовать такой код, то все в...

Класс для динамических матриц. После ввода элементов матрицы программа аварийно закрывается - C++
В программе я создал класс, отвечающий за ввод и вывод динамической матрицы. Однако после ввода элементов матрицы программа аварийно...

Не завершается программа - C++
После ввода массива консоль не закрывается, почему? #include "stdafx.h" #include <fstream> #include <stdlib.h> #include <iomanip> ...

6
Bers
Заблокирован
03.09.2011, 04:25 #2
эм... *включает телепатические способности*

Наверное, где то ошибка!!!
0
deamonSuitUp
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 27
03.09.2011, 04:40  [ТС] #3
компилятор ошибок не выдает, все работает корректно, возможно это из за множественных условий?
0
kazak
3038 / 2359 / 157
Регистрация: 11.03.2009
Сообщений: 5,405
Завершенные тесты: 1
03.09.2011, 04:54 #4
Цитата Сообщение от deamonSuitUp Посмотреть сообщение
возможно это из за множественных условий?
очень даже может быть.

Добавлено через 1 минуту
Цитата Сообщение от deamonSuitUp Посмотреть сообщение
(меню из кучи условий if-else)
профессионалы рекомендуют применять здесь switch.
0
Bers
Заблокирован
03.09.2011, 05:24 #5
Цитата Сообщение от deamonSuitUp Посмотреть сообщение
компилятор ошибок не выдает, все работает корректно, возможно это из за множественных условий?
Вы ошибаетесь. Если бы все работало корректно, приложение не падало бы в ран-тайме.

Ошибки бывают разные:

1. Компиляции. Когда компилятор просто отказывается компилить нечто, из-за косячного синтаксиса, например использование не объявленного метода, или неверно записанное имя переменной.

2. Компоновки. Когда все единицы трансляции успешно откомпилированы, и теперь компоновщик пытается соединить их в единое целое. Ошибка может произойти, например из-за повторного определения одной и той же функции в разных ед. трансляции.

3. Ран-тайма. Все успешно скомпилировано и скомпоновано. Но в процессе выполнения программы происходит вызов каких то инструкций, которые ведут к аварийному завершению.
Часто это всевозможные повреждения кучи: выход за пределы массива, удаление уже удаленного объекта, и тп.

Это как раз ваш случай

Ошибки ран-тайма - самые коварные) Иногда приходится просидеть в отладчике помногу часов, что бы просто понять - что за мистика происходит в этом коде))

Лечеццо с помощью пошаговой отладки/ведения лога/etc

Первое что нужно сделать - установить точное место, где программа падает.
Второе - понять из-за чего.
И только потом уже думать, как можно исправить.

Иногда, кстати, программа падает далеко от того места, которое является настоящим источником ошибки.

4. Семантические. Когда все работает, и ничего не падает. Но программа ведёт себя не так, как от неё ожидалось. Это уже ошибка в логике.


Но поскольку, вы не предоставили ни сообщения об ошибке, ни кода, ни примерных соображений, в каком месте падает программка, то вряд ли вам тут кто нибудь поможет.

Ну и напоследок: ошибки - как паразиты. Им нужна жрачка. Питаются ошибки - грязью и неопрятностью в коде.

Поэтому, всегда старайтесь писать код так, что бы он у вас по полочкам был разложен.
Если разбить большую задачу на кучку маленьких - она становится проще. В ней легче ориентироваться, и поэтому труднее ошибиться.

Если у вас километр условий, и все они в одном блоке - такой код похож на кашу. Ничего удивительного, что завелись паразиты.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
03.09.2011, 08:22 #6

Не по теме:

У меня между большими пальцами ног чешется, что бы это могло быть?



Код уже покажи, что ли...
0
-=ЮрА=-
Заблокирован
Автор FAQ
03.09.2011, 20:27 #7
Цитата Сообщение от deamonSuitUp Посмотреть сообщение
запускаю компилятор, все запустилось, работает (меню из кучи условий if-else). выбираю любой пункт меню и он работает, после этого надо вернуться на главное, но не пашет, вылезает ошибка - прекращена работа программы. в чем может быть дело? исключения не могу пока написать в код, ибо не позволяют, а до этого все норм было, добавил в условие еще одно и кажется усё. заранее признателен
- Выкладывакй свой код, ошибка может проявиться из изначально неверного алгоритма решения, как вариант возможно есть деление на НУЛЬ или ВЫХОД ЗА ГРАНИЦЫ ПАМЯТИ...
0
03.09.2011, 20:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2011, 20:27
Привет! Вот еще темы с ответами:

Программа не завершается - C++
Здравствуйте! 1) Моя программа на первом же тесте превышает положенное время (она не долго работает, она просто не завершается)....

Программа сразу завершается - C++
Здравствуйте! Я написал программу с конфигурацией решения Release, при запуске exe-файла программа тут же закрывается, а то что она выводит...

Программа не завершается корректно - C++
Написал программу, определяющую наибольшее из двух введённых пользователем чисел. Решил усложнить её и завершить её только нажатия,...

Программа завершается с ошибкой Killed - C++
Программа завершается с ошибкой Killed, когда я выделяю очень много динамической памяти, но меньше чем есть в наличии всей памяти. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru