C6279

تحذير C6279: <متغير> هو المخصصة مع scalar جديد ويحذفها باستخدام صفيف يحذف]

تظهر فقط في التعليمة البرمجية C + + هذا التحذير وهو يشير إلى أن استدعاء دالة inconsistently تخصيص ذاكرة مع العامل العددية جديد ، لكن تحرير به صفيفة [] يحذف عامل التشغيل . إذا كانت ذاكرة هو تخصيصها باستخدام جديدالعددية ، يجب عادة أن تحرير مع يحذف القيم المفردة .

هناك أسباب ثلاثة على الأقل على الأرجح أن يسبب مشاكل:

  • المنشئات لكائنات فردية في الصفيف يتم لا استدعاء، على الرغم من أن destructors.

  • في حالة غير متوافقة مع [] جديدة operaإلىr و يحذف operaإلىr [ operaإلىr جديد عمومي (أو فئة خاصة) و يحذف operaإلىr ، من المحتمل أن نتائج غير متوقعة إلى تحدث.

يصعب المبالغة الدقيق لهذا عيب إلى التنبؤ. قد يتسبب به سلوك عشوائية أو أعطال نظراً إلى من استخدام ذاكرة غير مهيأ لأنه لم يتم استدعاء construcإلىrs. أو، قد يتسبب في عمليات تخصيص ذاكرة و أعطال في الحالات الموقع تجاوز عوامل تشغيل. في بعض الحالات النادرة، قد unimportant عدم التطابق. تحليل أداة لا يميز حاليا بين هذه الحالات.

مثال

يلي تعليمات برمجية ينشئ هذا التحذير:

class A
{
  // members
};

void f ( )
{
  A *pA = new A;
  //code ...
  delete[] pA;
}

إلى تصحيح هذا التحذير، استخدم تعليمات برمجية التالية:

void f( )
{
  A *pA = new A;
  //code ...
  delete pA;
}