Segmentation Falha na criação de uma matriz em C

Migrei recentemente para um novo laptop - HP dv6119tx (Intel Core i5, 4 GB de RAM). Possui o Windows 7 Home Premium de 64 bits instalad

Estou tentando criar uma matriz do tipoint de comprimento 10 ^ 6 em C ++ (Dev C ++), que eu costumava criar confortavelmente no meu último laptop (Windows 7 Ultimate / Ubuntu Linux, 2 GB de RAM) e em todos os outros ambientes em que eu programava (deve levar cerca de 3,5 MB de RAM). Mas com a configuração atual, estou recebendo um erro "Segmentation Fault" no modo de depuraçã

SCREENSHOTS (EDIT):
A primeira captura de tela mostra 10 ^ 5 trabalhando na configuração atual e 10 ^ 6 não. Não tenho uma captura de tela para 10 ^ 6 trabalhando na minha última máquina, mas a usei várias vezes.

EDITAR
O programa funcionaria muito bem se eu declarasse a matriz comogloba ou criou-o dinamicamente no heap como

int* a = new int[MAX];  

Mas o que eu não entendo é que, quando a matriz local está ocupando uma quantidade insuficiente de 3,5 MB de memória na pilha (e estava funcionando bem em uma máquina de 2 GB), por que esse problema deveria aparecer em uma máquina de 4 GB? Esse é um problema de espaço na pilha do usuário? Pode ser aumentado manualmente?

EDIT 2:
Estou particularmente fazendo essa pergunta porque enviei várias soluções no SPOJ com matrizes de 10 ^ 6 criadas na pilha. Com a minha configuração atual, sinto-me aleijado por não conseguir fazer isso. Prefiro empilhar sobre heap sempre que possível, porque não há problemas de vazamento de memória; e variáveis locais sobre variáveis globais porque são organizadas e não atrapalham o espaço para nom

questionAnswers(3)

yourAnswerToTheQuestion