Compartir a través de


C6201

Advertencia C6201: Saturación de búfer para <variable>, posiblemente asignado a la pila: el índice <nombre> está fuera del intervalo válido comprendido entre <mín> y <máx>

Esta advertencia indica que un desfase entero en la matriz de pila 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 el uso del tamaño de una matriz como índice en 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 índice de la matriz está fuera del intervalo válido:

void f( )
{
  int buff[25];
  for (int i=0; i <= 25; i++) // i exceeds array bound
  {
    buff[i]=0; // initialize i
    // code ...
  }
}

Para corregir ambas advertencias, utilice el tamaño correcto de matriz, como se muestra en el código siguiente:

void f( )
{
  int buff[25];
  for (int i=0; i < 25; i++)
  {
    buff[i]=0; // initialize i
    // code ...
  }
}