Прямо сейчас вы выделяете (или, по крайней мере, пытаетесь) 2619560*sizeof(float)
байт в стеке.По крайней мере, в большинстве типичных случаев стек может использовать только ограниченный объем памяти.Вместо этого вы можете попытаться определить его static
:
static float test[2619560];
Это вытащит его из стека, поэтому вместо него обычно можно использовать любую доступную память.В других функциях определение чего-либо как static
меняет семантику, но в случае main
это не имеет большого значения (кроме теоретической возможности рекурсивного main
).