Compartilhar via


C6200

Aviso C6200: índice <nome>está fora do intervalo de índice válido <min>para <max>para o buffer de pilha não <variável>

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

Uma causa comum desse defeito está usando o dimensionar de uma 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 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 sistema autônomo avisos, use dimensionar de 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...
   }
}