【发布时间】:2012-05-13 16:28:53
【问题描述】:
我在通过VS2008 运行应用程序时遇到问题。我已经调试了代码,发现问题出在sprintf() 上。我收到以下错误
clear.exe 中 0x005251d2 处未处理的异常:0xC0000005:访问冲突读取>位置 0xffffffd4。
在执行下面一行时
static char buf[512];
char time_buf[100];
sprintf(buf,
"EVENT_TIME %5.2f DOING 'LOGIN EVENT' on 'Session Login' LEVEL 1 \n AT %s \n\n",
seconds, time_buf);
我也尝试过_snprintf(),但遇到了同样的问题。
【问题讨论】:
-
请贴出相关代码。 (例如 buf 和 time_buf 的声明)
-
那么调试器说
buf、seconds和time_buf的值是什么?其中一个或多个可能不太正确。我敢打赌它是time_buf。 -
声明如下...static char buf[512]; char time_buf[100]; time_buf 和 seconds 的值是正确的.. time_buf 给出了机器的时间.. 在执行此行之前.. buf 包含有效字符串
-
更多代码。 :) 所有字符串都确定终止了吗?
-
@Nikhil:也许您可以在调试器捕获异常时发布堆栈跟踪。特别是显示传递给
sprintf()的参数的堆栈跟踪。
标签: c++ c visual-studio visual-studio-2008