Credo che facendo così esaurisci lo stack, che non è infinito.

Quando devi allocare degli array grossi devi sempre andare sull'heap, altrimenti esaurisci lo spazio a disposizione per lo stack e il programma riceve il SIGSEV.