Cela peut arriver si votre tableau est local à une fonction. Dans ce cas, vous aurez besoin d'une taille de pile suffisante pour contenir 2^24 ints (2^26 octets, ou 64 Mo).
Si vous définissez un tableau global, cela devrait fonctionner. Je ne suis pas sûr de savoir comment modifier la taille de la pile dans Windows; sous Linux, vous utiliseriez "ulimit -s 10000" (les unités sont KB).
Si vous avez une bonne raison de ne pas utiliser de global (concurrence ou récursivité), vous pouvez utiliser malloc/free. L'important est soit d'augmenter votre pile (ce qui n'est pas une bonne idée si vous utilisez des threads), soit d'obtenir les données sur le tas (malloc/free) ou le segment de données statiques (global).
Idéalement, vous obtiendrez une terminaison de programme (core dump) et non un blocage. Je fais en cygwin.
Que voulez-vous dire par "commenter tous les autres codes"? Voulez-vous dire qu'un programme constitué d'une seule ligne, 'int a [256] [256] [256]', et une méthode principale vide 'int main() {}', se bloque? –
Le code réel est le bienvenu. – Alex
256 * 256 * 256 est de 16 millions d'éléments; votre tableau est de 64 mégaoctets sur un système 32 bits. Pas déraisonnable pour les systèmes modernes, mais si vous allouez sur la pile (à l'intérieur d'une fonction), c'est probablement plus gros que ce que votre compilateur et votre système d'exploitation attendent. –