Sdílet prostřednictvím


C6200

upozornění C6200: index <name> je mimo rozsah platný index <min> k <max> bez zásobníku vyrovnávací paměti <variable>

Toto upozornění znamená, že celé Posun do určeného pole překračuje maximální hranice daného pole.Tato vada může způsobit náhodné chování nebo selhání.

Jednou z běžných příčin této vady se pomocí velikosti pole jako index do pole.Indexování pole C/C++ je od nuly, maximální právní index do pole je menší než počet prvků pole.

Příklad

Následující kód vygeneruje tato upozornění, protože for smyčky přesahuje rozsah indexu:

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

Obě varování opravíte pomocí správné pole velikost jak je ukázáno v následujícím kódu:

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