Во-первых, это будет зависеть от ряда факторов, таких как платформа и даже конфигурация на платформе. Максимальное адресное пространство, доступное для 32-разрядного процесса, составляет , как правило, , ограниченное тем, где разделено пространство пользователя / ядра, которое часто равно 3G / 1G или 2G / 2G (пользователь / ядро).
Теперь, вероятнее всего, создание такого массива фактически не "зарезервирует" всю эту память. Скорее, он будет отображен в виртуальное адресное пространство и фактически не начнет потреблять память, пока к ней не будет произведен доступ (см .: подкачка по требованию).
Также помните, что вы должны делиться своим адресным пространством со всем остальным в вашей программе, включая код. Если бы вы использовали все это с массивом, куда бы вы делали код?