@kaktak255

Из за чего ошибка сегментирования?

Создаю обычный массив:
int a[3'000'000] = {0};
Компилирую командой g++ -o main main.cpp && ./main
В итоге получаю " ошибка сегментирования " , хотя раньше и 100 и 200 миллионов работало и ошибки сегментирования было. В чем проблема ?
Ошибки сегментирования нету и все работает с размером массива 900 000 000 , когда компилирую с флагом -O3 , или когда пишу так static int a[900'000'000] = {0};
Перезагрузка не помогает.
Переустановка компилятора не помогла.
Раньше работало
( кроме iostream ничего не подключено )
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
24 мегабайта на стеке - это сильно.
Попробуй vector или выделять память на куче.

А на -O3 всё работает из-за того что компилятор убирает эту переменную, так как она нигде не читается.
https://godbolt.org/z/Mz7e989oM
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы