Stack overflow incompréhensible : déclaration int
Bonjour,
j'ai un petit code de C++ pour tester le temps d'un algo de tri.
je suis sous visual studio 2013.
Code:
1 2 3 4 5 6 7 8 9
| int _tmain(int argc, _TCHAR* argv[])
{
const int NBtab =1000000; //erreur à l’exécution
srand(static_cast <unsigned int> (time(NULL)));//initialisation du generateur de nombre aleatoire
int tab[NBtab];
... |
C'est un bug ou quoi ? On ne peut stoker 1 million dans un int qui culmine à INT_MAX= 2147483647 ?
Après un petit test, sans erreur
Code:
1 2 3
| const int NBtab =100000; //100 mille
const int NBtab2 = 10000000; //10 millions
int tab[NBtab]; |
je viens de voir que c'est le tableau[1 million] qui déclenchait l'erreur car trop gros pour tenir dans la pile, et pourtant c'est la déclaration de NBtab qui lève l’exception, un défaut du debugger visual ?
ou c'est normal, quelqu’un peut m'expliquer ?