Compartilhar via


C6201

Aviso C6201: buffer saturação para <variável>, que possivelmente pilha alocada: índice <nome>está fora do intervalo de índice válido <min>para <max>

Este aviso indica que um deslocamento inteiro na matriz de pilha especificado excede o máximo dos limites da matriz.Esse defeito pode causar comportamento aleatório ou quedas.

Uma causa comum desse defeito está usando um dimensionar de matriz sistema autônomo um índice na matriz.Como a indexação de matriz de C/C ++ é baseado em zero, o índice legal máximo em uma matriz é um número de elementos da matriz menos.

Exemplo

O código a seguir gera este aviso porque o índice de matriz está fora do 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 corrigir sistema autônomo avisos, use o dimensionar da matriz correto conforme mostrado no código a seguir:

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