C6200

تحذير C6200: فهرس <اسم> هو خارج النطاق الفهرس صحيح <أدنى> إلى <أقصى> للمخزن المؤقت غير المكدس <متغير>

هذا التحذير يشير إلى أن إزاحة عددا صحيحاً في الفرعي صفيفة يتجاوز حدود الحد الأقصى الذي صفيفة. قد يتسبب هذا عيب سلوك عشوائية أو الأعطال.

واحد الأسباب عام لترتيب هو defect هو استخدام حجم الصفيف فهرس في الصفيف. لأن الفهرسة صفيفة C/C + + هو zero-based، القانونية القصوى الفهرس في صفيفة هو أحد أصغر من من عدد العناصر في الصفيفة.

مثال

يلي تعليمات برمجية ينشئ هذا التحذير لأن forتكرار حلقي يتجاوز نطاق الفهرس:

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

لتصحيح كلتا تحذيرات، استخدم الحجم الصفيف الصحيح كما هو موضح فيما يلي تعليمات برمجية:

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