C6200
Aviso C6200: índice <name> está fora do intervalo de índice válido <min> Para <max> para 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...
}
}