读书人

可变参数函数内存分配有关问题

发布时间: 2012-03-21 13:33:15 作者: rapoo

可变参数函数内存分配问题
假设有这样一个函数
int myprintf(char *format, ...)
{
char temp[6000];
va_start(args, format);
vsprintf(temp, format, args);
va_end(args);
printf(temp);
}

在事先不知道format长度以及参数长度的情况下,假如经过vsprintf格式化后的字符串超过temp的6K字节,那就会发出缓冲区溢出的情况,有什么办法能够像printf一样自适应各种长度的字符串,又能避免出现缓冲区溢出的问题?

[解决办法]
vsnprintf

读书人网 >C++

热点推荐