C6201
Aviso C6201: saturação de buffer para <variável>, que é possivelmente alocado na pilha: o índice <nome> está fora do intervalo e índice válido <min> a <max>
Esse aviso indica que um deslocamento de inteiro na matriz especificada da pilha excede os limites máximos da matriz.Este defeito pode provocar comportamento aleatória ou falhas.
Uma causa mais comum desse defeito estiver usando o tamanho de uma matriz como um índice na matriz.Porque a indexação de matriz C/C++ se baseia em zero, o índice válido máximo em uma matriz é uma menor que o número de elementos da matriz.
Exemplo
O código a seguir gerenciar esse aviso porque o índice da 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 ambos os avisos, use o tamanho correto da matriz conforme mostrado no seguinte código:
void f( )
{
int buff[25];
for (int i=0; i < 25; i++)
{
buff[i]=0; // initialize i
// code ...
}
}