C6200
Advertencia C6200: El índice <nombre> está fuera del intervalo de índices comprendido entre <mín> y <máx> válido para el búfer fuera de pila <variable>
Esta advertencia indica que un desfase entero en la matriz especificada supera los límites máximos de esa matriz.Este defecto podría producir comportamiento aleatorio o bloqueos.
Una causa común de este defecto es la utilización del tamaño de una matriz como índice de la matriz.Debido a que la indización de matrices en C/C++ está basada en cero, el índice válido máximo de una matriz es menor en uno que el número de elementos de la matriz.
Ejemplo
El código siguiente genera esta advertencia porque el bucle for supera el intervalo de índices:
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...
}
}
Para corregir ambas advertencias, utilice el tamaño correcto de matriz como se muestra en el código siguiente:
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...
}
}