有没有办法自动实现 sprintf 的缓冲区分配?
Is there a way to implement sprintf's buffer allocation automatically?
我想使用 mysprintf (( 而不是 sprintf (( 来自动分配缓冲区大小。
mysprintf(( 有任何问题吗?或者你能推荐一个更好的方法吗?
char s[256];
sprintf(s, "%s-%s-%s", "abcdefg", "abcdefg", "abcdefg");
string s = mysprintf("%s-%s-%s", "abcdefg", "abcdefg", "abcdefg");
string mysprintf(const char* format, ...)
{
int ret;
char* buf;
va_list ap;
va_start(ap, format);
ret = vasprintf(&buf, format, ap);
va_end(ap);
if (ret == -1) {
return {};
}
string out(buf);
free(buf);
return out;
}
你不需要编写自己的函数,而是使用 asprintf((。
但请注意,这是一个USE_GNU的东西。
记得自由((
相关文章:
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 如何分配适合容纳 T 类型对象的缓冲区(可能过度对齐、可能有运算符 new 等)
- char p[0]表示自动分配的缓冲区还是安全指针
- 有没有办法自动实现 sprintf 的缓冲区分配?
- 线程函数无法从堆上分配的缓冲区中读取字符
- 如何正确分配Fuse ReadDir()的缓冲区
- 将数据分配给了数组分配,但程序显示了以缓冲区超支的输出
- C++:当我将值分配给缓冲区时,它不起作用
- 如何在 OpenCL 中使用缓冲区分配和映射内存机制
- 从C 中的函数中动态分配的缓冲区返回的最佳模式是什么?
- 了解循环缓冲区实现的内存分配性质
- 尝试为图像缓冲区分配内存时 ptr 值错误
- Sprintf 缓冲区问题,错误分配给字符数组
- Vulkan中动态统一缓冲区的缓冲区内存分配
- 如何分配可执行的内存缓冲区
- C - 分配一个未签名的炭缓冲区,然后用字符串填充
- CUDA sprintf 到全局/共享内存缓冲区
- 使用 sprintf 分配给字符数组并将字符指针作为输入之一时缓冲区溢出
- 静态数组缓冲区分配
- OpenCL缓冲区分配和映射最佳实践