Почему 248x248 - это максимальный размер двумерного массива, который я могу объявить?

У меня есть программная проблема, для которой я хотел бы объявить массив 256x256 на C. К сожалению, я каждый раз, когда я пытаюсь даже объявить массив такого размера (целые числа), и я запускаю свою программу, она неожиданно завершается. Какие-либо предложения? У меня нетЯ не пытался распределить память, так как я не могу понять, как она работает с многомерными массивами (не стесняйтесь, проведите меня через это, хотя я новичок в C). Еще одна интересная вещь, которую стоит отметить, - это то, что я могу объявить массив 248x248 в C без проблем, но не больше.

dims = 256;  
int majormatrix[dims][dims];

Составлено с:

gcc -msse2 -O3 -march=pentium4 -malign-double -funroll-loops -pipe -fomit-frame-pointer -W -Wall -o "SkyFall.exe" "SkyFall.c"

Я использую SciTE 323 (не знаю, как проверить версию GCC).