Почему то,что влезает в обычный массив,не влезает в 3-х мерный???

 
В чем тут прикол?

вот это int x_d1[980000] работает нормально

тогда как int x_d3[98][100][100]; говорит "слишком большой массив"????

Какой принцип построения в памяти многомерных массивов?
 
Забавно, но int x_d3[97][100][100] - уже проходит
 

Действительно..

int x_d1[999999] ; ещё работает
int x_d2[1000000] ; уже не работает.

Чем вообще ограничен размер массива ( по сути?)

 
Похоже, что это ограничение в 1 млн элементов при статическом объявлении массивов. Будем разбираться.

А вообще я бы не рекомендовал вот так вот выделять статические массивы.
Сделайте их динамическими!
 
вскрытие показало:
1. неправильно подсчитывается общий размер многомерного массива
2. установлено ограничение на 1 миллион элементов

Подсчёт исправили.
ограничение увеличили до 100 миллионов.

Размер массива может быть ограничен наличием свободной памяти. Теоретически не может быть распределно более 2 гигов
 

ОК. Спасибо.

Причина обращения: