Les compilateurs ne font aucune vérification à ce niveau. tab[-5] est
syntaxiquement correct, mais c'est une faute de programmation.
De même, si tu as le code suivant :
1 2 3 4 5 6
|
/* ... */
int tab[15];
/* ... */
printf ("%d", tab[3627]); |
C'est syntaxiquement correct, dan le sens ou le compilateur ne te préviendras pas.
En revanche, c'est clairement un bug dans ton code.
Il est toutefois possible que les dernières options de compilation de compilateurs comme GCC (Werror je crois ?) fassent attention à ce genre de chose, mais même si ces options le permettent, il vaut mieux écrire du code correct.
Partager