C6200
Aviso C6200: índice <name> está fora do intervalo de índice válido <min> Para <max> o buffer de pilha não <variable>
Este aviso indica que um deslocamento inteiro na matriz especificada excede os limites máximo dessa matriz. Esse defeito pode causar comportamento aleatório ou travamentos.
Uma causa comum deste defeito está usando o tamanho de uma matriz como um índice na matriz. Como a indexação de matriz de C/C++ é baseado em zero, o índice máximo legal em uma matriz é uma menor que o número de elementos da matriz.
Exemplo
O código a seguir gera este aviso porque o for loop excede o intervalo de índice:
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 corrigir os dois avisos, use o tamanho da matriz correto conforme mostrado no código a seguir:
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...
}
}