Compartilhar via


C6200

Aviso C6200: índice <nome> está fora do intervalo de índices válido <min.> até <max.> para o buffer sem pilha <variável>

Esse aviso indica que um deslocamento de inteiro na matriz especificada 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 loop de for 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 ambos os avisos, use o tamanho correto da matriz conforme mostrado no seguinte código:

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