C6200

Aktualisiert: November 2007

C6200

Warnung C6200: Der Index <Name> liegt für den Nichtstapelpuffer <Variable> außerhalb des gültigen Indexbereichs von <Minimum> bis <Maximum>.

Diese Warnung gibt an, dass ein Ganzzahloffset im angegebenen Array die Grenzen dieses Arrays überschreitet. Dieser Fehler kann zufälliges Verhalten oder Abstürze verursachen.

Eine häufige Ursache dieses Fehlers ist die Verwendung einer Arraygröße als Index im Array. Da die Arrayindizierung in C/C++ auf 0 (null) basiert, ist der maximal zulässige Index im Array um eins kleiner als die Anzahl der Arrayelemente.

Beispiel

Im folgenden Code wird diese Warnung generiert, da die for-Schleife den Indexbereich übersteigt:

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

Um beide Warnungen zu korrigieren, verwenden Sie die richtige Arraygröße, wie im folgenden Code gezeigt:

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