C6054
更新:2007 年 11 月
警告 C6054: 字串 <variable> 可能不是以零結尾
這個警告表示將非零結尾的字串傳遞給需要以零結尾之字串的函式。需要以零結尾之字串的函式會搜尋到緩衝區的結尾,以尋找零。這項缺失可能會造成可利用的緩衝區滿溢錯誤或損毀。程式應該確定字串是以零結尾。
範例
下列程式碼將產生出這個警告:
#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
}
若要更正這個警告,請在呼叫函式 f 之前,以 null 結束 v,如下列範例程式碼所示:
void g( )
{
wchar_t v[200];
v[0]= '\0';
f(v);
}