Вы, вероятно, не создаете такой большой массив, и если вы это делаете, вы, конечно, не создаете его в стеке; стек просто не такой большой.
Если у вас 32-битное адресное пространство и 4-байтовый int
, вы не можете создать массив с миллиардом int
с; просто не будет достаточно непрерывного пространства в памяти для такого большого объекта (вероятно, не будет достаточно непрерывного пространства для объекта, имеющего долю такого размера). Если у вас есть 64-битное адресное пространство, вам может быть неудобно выделять такое много места.
Если вы действительно хотите попробовать, вам нужно либо создать его статически (т. Е. Объявить массив в области видимости файла или с квалификатором static
в функции), либо динамически (используя malloc
).