65,211
社区成员
发帖
与我相关
我的任务
分享
bool f(char *lpFmt, ... )
{
va_list arglist;
va_start( arglist, lpFmt );
vsnprintf_s( buff,sizeof(buff),_TRUNCATE, lpFmt, arglist );
va_end( arglist );
...
}
bool f(char *lpFmt, ... )
{
va_list arglist;
va_start( arglist, lpFmt );
_vsnprintf_s( buff,sizeof(buff), lpFmt, arglist );
va_end( arglist );
...
}
//以下代码会内存泄露 程序发生错误退出
void OutputString( char *lpFmt, ... )
{
char buff[1024];
va_list arglist;
va_start( arglist, lpFmt );
_vsnprintf_s( buff, sizeof(buff), lpFmt, arglist );
va_end( arglist );
::OutputDebugString(buff);
}
int main()
{
char str[2048];
memset(str,'a',sizeof(str));
OutputString("test:%s",str);
}
//修正使用vsnprintf_s 程序运行正常
void OutputString( char *lpFmt, ... )
{
char buff[1024];
va_list arglist;
va_start( arglist, lpFmt );
vsnprintf_s( buff,sizeof(buff),_TRUNCATE, lpFmt, arglist );
va_end( arglist );
::OutputDebugString(buff);
}
int main()
{
char str[2048];
memset(str,'a',sizeof(str));
OutputString("test:%s",str);
}