当前位置:网站首页>可变参数重载时的内存错误

可变参数重载时的内存错误

2022-07-06 07:10:00 iMatt

如果实现下列2种形式的重载

unsigned format(char* szBuf, unsigned nBufLen,const char* fmt...);
unsigned format(char* szBuf, unsigned nBufLen,const char* fmt, va_list arglist);

如果仅包含一个字符指针,则上述重载则总是调用后者,这将导致运行时内存错误,程序直接崩溃。

导致错误的原因是:

typedef char *  va_list;

如果调用的代码中使用的是字符指针而不是va_list类型,那么将会导致运行时内存错误。

所以上述重载必须调整。

原网站

版权声明
本文为[iMatt]所创,转载请带上原文链接,感谢
https://blog.csdn.net/iMatt/article/details/125584847