У меня возникает проблема, мне нужно сделать хруст больших данных, и создание слишком больших массивов, по-видимому, вызывает Segmentation fault (core dumped)
. Вот тиражирование проблемы:Слишком большие вложенные массивы приводят к сбою сегментации (ядро сбрасывается)
int main() {
struct { char a[2000][12] } b[2000];
return 0; }
Я использую Archlinux 64 бита, cc
как компилятор, ulimit -s
возвращает 8192
, который является странным, так как у меня есть 24 Гб оперативной памяти. Любая идея, как решить проблему? Я думаю, что это связано с stack
и heap
, но я понятия не имею, что это такое.
Это переполнение стека! –
@KirillBulygin Этот сайт достиг своей цели и будет закрыт. – nicomp
Вам нужно выделить из кучи. Размер стека обычно ограничен 1 МБ или около того. Прочитайте malloc/бесплатно. – OldProgrammer