C6054

تحذير C6054: سلسلة قد لا يكون <متغير> منتهية بصفر

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

مثال

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

#include<codeanalysis\sourceannotations.h>
using namespace vc_attributes;

void f ([Pre(NullTerminated=Yes)] wchar_t* v);

void g ( )
{
   wchar_t v[200];
   f(v); // C6054 - v is not "null-terminated" before the call to f
}

لتصحيح هذا التحذير، فارغ-ينهي vقبل استدعاء دالة fكما هو موضح في نموذج تعليمات برمجية التالي:

void g( )
{
  wchar_t v[200]; 
  v[0]= '\0';
  f(v);
}

راجع أيضًا:

المرجع

C6053

NullTerminated

المبادئ

نظرة عامة حول التعليقات التوضيحية