首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于函数sprintf_s()用法的疑点

2013-10-29 
关于函数sprintf_s()用法的疑问使用函数sprintf_s(),初始用法如下:char* msg new char[100]sprintf_s(m

关于函数sprintf_s()用法的疑问
使用函数sprintf_s(),初始用法如下:


char* msg = new char[100];
sprintf_s(msg, ...);

,编译不能通过,报error:the second paramater can't covert from char[74] to size_t,百思不得解,将代码做如下改动:

char mag[100];
sprintf_s(msg, ...);

,编译通过,请问各位这是什么原因?

查了下,它的原型如下:

函数原型:
int sprintf_s(
char *buffer,
size_t sizeOfBuffer,
const char *format [,
argument] ...
);


[解决办法]
函数调用时,有名名参数一个都不能缺少,一个一个对应匹配。
无名参数(。。。),根据需要,匹配,实参不能用省略号。

[解决办法]
有重载版本
template <size_t size>
int sprintf_s(
   char (&buffer)[size],
   const char *format [,
   argument] ... 
); // C++ only

热点排行
Bad Request.