Потому что массив - непрерывный блок памяти. Не удивительно, что в (32-битной) системе не всегда найдётся непрерывный блок памяти размером 1.2 Гб. Для таких объёмов Вы вынуждены будете использовать списки, а не массивы.