Compartir a través de


C6200

Actualización: noviembre 2007

C6200

Advertencia C6200: El índice <nombre> está fuera del intervalo del índice <mín> válido de <máx> para el búfer fuera de pila <variable>

Esta advertencia indica que un desfase entero en la matriz especificada excede 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 excede 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...
   }
}