C6054
警告 C6054:字符串 <variable> 不能以零结尾
此警告意味着向一个需要以零结尾的字符串的函数传递了一个不是以零结尾的字符串。接受以零结尾的字符串的函数将超出缓冲区的末尾来查找零。此缺陷可能会导致可利用的缓冲区溢出错误或系统崩溃。程序应当确保字符串以零结尾。
示例
下面的代码生成此警告:
#include <sal.h>
void func( _In_z_ wchar_t* wszStr );
void g ( )
{
wchar_t wcArray[200];
func(wcArray); // Warning C6054
}
若要更正此警告,请在调用函数 func() 之前在 wcArray 的末尾添加 NULL 终止符,如下面的代码示例所示:
#include <sal.h>
void func( _In_z_ wchar_t* wszStr );
void g( )
{
wchar_t wcArray[200];
wcArray[0]= '\0';
func(wcArray);
}