我试图避免使用 sprintf 和朋友(安全原因)之类的固定缓冲区大小,但是,当我将其更改为对 arg2 -> arg1 使用 sizeof 时,我的程序文本输出已损坏/无法正确显示/缺少某些部分。
具体来说,即:
vsnprintf(putbuf, LARGE_BIG_BUFFER_SIZE, format, args);
到
vsnprintf(putbuf, sizeof putbuf, format, args);
通过简单的 sizeof 更改,我的文本输出全部损坏/短。我错过了什么吗?
原始功能:
to_screen(const char *format,...)
{
if (window_display && format) {
va_list args;
va_start(args, format);
vsnprintf(putbuf, LARGE_BIG_BUFFER_SIZE, format, args);
va_end(args);
}
}