Freigeben über


C6201

Warnung C6201: Pufferüberlauf für <Variable> (möglicherweise stapelzugeordnet): Der Index <Name> liegt außerhalb des gültigen Indexbereichs von <Minimum> bis <Maximum>.

Diese Warnung gibt an, dass ein Ganzzahloffset im angegebenen Stapelarray 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 der Arrayindex außerhalb des gültigen Bereichs liegt:

void f( )
{
  int buff[25];
  for (int i=0; i <= 25; i++) // i exceeds array bound
  {
    buff[i]=0; // initialize i
    // code ...
  }
}

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

void f( )
{
  int buff[25];
  for (int i=0; i < 25; i++)
  {
    buff[i]=0; // initialize i
    // code ...
  }
}