Evidentemente il problema è proprio nell'allocazione statica di così tante locazioni di memoria per l'array. In effetti anche io in passato ho riscontrato problemi simili, e per valori anche minori di 500000.