中易网

程序运行出错:vsprintf.c:244,Buffer too small,有没有人遇到过

答案:1  悬赏:30  
解决时间 2021-01-13 06:06
  • 提问者网友:爱唱彩虹
  • 2021-01-12 23:07
程序运行出错:vsprintf.c:244,Buffer too small,有没有人遇到过
最佳答案
  • 二级知识专家网友:零点过十分
  • 2021-01-12 23:50
之前遇到如下一个问题——
程序运行出错:f:\dd\vctools\crt_bld\self_x86\crt\src\vsprintf.c Line:244”
Expression:("Buffer too small", 0).

最初以为是自己程序中sprintf使用不当造成的,就是就Grep出所有的sprintf,一个一个查,还是没有查出问题所在。
过了许久,已经忘了是哪个线索让我查出来是CString.Format时使用自身作为参数而调用失败了。(奇怪的是这个失败并不总会发生。我们程序中“隐藏”的这个问题年初就存在,可一直没有被发现过,而且可以肯定这段代码测试时被多次执行过。更奇怪的是,这个问题是两个团队几乎同时发现的。难道下面说的“不可预测”还与系统时间有关吗?至今无解!)

MSDN中对这个错误使用有过特别的记载——
The call will fail if the string object itself is offered as a parameter to Format. For example, the following code will cause unpredictable results:
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息