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);
}