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 ...
}
}