Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
8 / 5 / 4
Регистрация: 18.02.2014
Сообщений: 409
1

Ошибка сегментирования

06.06.2018, 13:45. Показов 1219. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Ситуация такая:
У меня есть g++ версии "gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)"
Написал простенькую программу
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int i = 0;
 
int main() {
    std::cout << ++i << std::endl;
    main();
    return 0;
}
скомпилировал так:
"g++ main.cpp"

Запустил так:
./a,out

и вот самое интересно что после вывода
523632 выскакивает ошибка: "Ошибка сегментирования"

Запустил еще раз и уже на числе 523616 снова вылетело с той же ошибкой

В чем может быть дело?
Типа из-за множества рекурсий не хватает памяти программе и она крашится?
htop показыват, что такое программа во время работы съедает всего 2МБ ОЗУ
и проц. у меня i3 2310M загружет всего на 0.2% это программой

Добавлено через 55 секунд
P.S.
Если это вдруг важно, то вот мой uname -a
Linux user-K53SD 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64 GNU/Linux
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2018, 13:45
Ответы с готовыми решениями:

Ошибка в коде (Ошибка сегментирования (core dumped)
Добрый день. Подскажите пожалуйста, где ошибка в коде? char ch; string s; ...

Ошибка сегментирования.
Всем доброго времени суток! Помогите пожалуйста разобраться в чем дело, пишу программу( суть найти...

C++ Ошибка сегментирования
Вот листинг файла: #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;vector&gt; using namespace...

Ошибка сегментирования
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;unistd.h&gt; #include...

2
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
06.06.2018, 15:56 2
outZoNe, а зачем это делать? В любом случае вылетит с ошибкой..
0
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
06.06.2018, 16:23 3
Лучший ответ Сообщение было отмечено outZoNe как решение

Решение

Бесконечная рекурсия в седьмой строчке вызвала переполнение стека. Попробуйте сменить на return main() (хвостовая рекурсия) и добавить ключ -O2 в вызов компилятора.

Добавлено через 26 минут
Цитата Сообщение от outZoNe Посмотреть сообщение
htop показыват, что такое программа во время работы съедает всего 2МБ ОЗУ
Рекурсия жрет стек, стек по умолчанию имеет размер порядка нескольких мегабайт.
Цитата Сообщение от worldown Посмотреть сообщение
В любом случае вылетит с ошибкой..
При хвостовой рекурсии компилятор может развернуть рекурсию в цикл.
1
06.06.2018, 16:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2018, 16:23
Помогаю со студенческими работами здесь

ошибка сегментирования
При запуске скомпилированной (gcc) программы выскакивает ошибка сегментирования, а при запуске ее...

Ошибка сегментирования
Здравствуйте! Подскажите, пожалуйста, почему программа выводит &quot;Ошибка сегментирования&quot;. #include...

Ошибка сегментирования
Добрый день, возникла проблема: Вот программа, суть из исходного файла у слов удаляется окончание...

Ошибка сегментирования
Здравствуйте. Ниже моя реализация алгоритма Крускала. Проблема заключается в том, что на этапе...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru