C6201

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

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

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

مثال

تنشئ التعليمة البرمجية التالية th هو تحذير لأن فهرس الصفيف هو خارج النطاق الصالح:

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

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

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