64,691
社区成员
发帖
与我相关
我的任务
分享
#include <string>
using namespace std;
#include <stdarg.h>
inline std::string mystr_fmt(const char* fmt, ...)
{
va_list argptr;
va_start(argptr, fmt);
int rst_size = _vsnprintf(NULL, 0, fmt, argptr) + 2; //运行到这里要崩溃,咋回事?
char* rst_tmp = new char[rst_size];
_vsnprintf(rst_tmp, rst_size, fmt, argptr);
string rst(rst_tmp);
delete[] rst_tmp;
rst_tmp = NULL;
va_end(argptr);
return rst;
}
void main()
{
mystr_fmt("%d", 2);
}
#include <string>
using namespace std;
#include <stdarg.h>
inline std::string mystr_fmt(const char* fmt, ...)
{
va_list argptr;
va_start(argptr, fmt);
int rst_size = _vsnprintf(NULL, 0, fmt, argptr) + 2; //运行到这里要崩溃,咋回事?
char* rst_tmp = new char[rst_size];
_vsnprintf(rst_tmp, rst_size, fmt, argptr);
string rst(rst_tmp);
delete[] rst_tmp;
rst_tmp = NULL;
va_end(argptr);
return rst;
}
void main()
{
mystr_fmt("%d", 2);
return;
}
用vs2008跑了下,程序可以运行.