C6200
Avertissement C6200 : l'index <nom> est en dehors de la plage d'index valide <min> à <max> pour la mémoire tampon <variable> non allouée par la pile
Cet avertissement indique qu'un offset d'entier dans le tableau spécifié dépasse les limites maximales de ce tableau. Ce défaut peut provoquer un comportement aléatoire ou des pannes.
Il est généralement dû à l'utilisation de la taille d'un tableau comme index dans le tableau. L'indexation de tableau en C/C++ étant de base zéro, l'index autorisé maximum dans un tableau est inférieur au nombre d'éléments du tableau.
Exemple
Le code suivant génère cet avertissement car la boucle for dépasse la plage d'index :
int buff[14]; // array of 0..13 elements
void f()
{
for (int i=0; i<=14;i++) // i exceeds the index
{
buff[i]= 0; // warning C6200
// code...
}
}
Pour corriger les deux avertissements, utilisez la taille de tableau correcte comme indiqué dans le code suivant :
int buff[14]; // array of 0..13 elements
void f()
{
for ( int i=0; i < 14; i++) // loop stops when i < 14
{
buff[i]= 0; // initialize buffer
// code...
}
}