怎么获得可变参数函数的缓存?

to_be_or_not_to_be 2004-12-10 09:26:11
例如一个这样的函数:
void execute(const char *fmt, ...)
{
char buf[1024] = {0};
va_list arg_ptr;
va_start(arg_ptr, fmt);
vsprintf(buf, fmt, arg_ptr);
va_end(arg_ptr);
}
这里一般是用vsprintf把缓存写到一个内存里,但是不知道缓存长度,所以事先也不知道如何声明内存长度,只好用一个通用的1024字节的内存了,如果缓存长度超过1024,那么vsprintf就失败了啊,请问这问题怎么解决啊
...全文
138 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bread_0053 2004-12-10
  • 打赏
  • 举报
回复
学习
hxblvc 2004-12-10
  • 打赏
  • 举报
回复
学习...
sharkhuang 2004-12-10
  • 打赏
  • 举报
回复
没办法啊。学习
pacman2000 2004-12-10
  • 打赏
  • 举报
回复
用vsnprintf指定长度。
kobefly 2004-12-10
  • 打赏
  • 举报
回复
这个本来就是不确定的啊
没办法的啊
  • 打赏
  • 举报
回复
用 _vsnprintf

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧