sprintf() 在 VS2008 中给出访问冲突错误
sprintf() is giving Access Violation Error in VS2008
我在通过VS2008
运行应用程序时遇到问题。我已经调试了代码,发现问题出在sprintf()
.我收到以下错误
在澄清.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 nn",
seconds, time_buf);
我也尝试过_snprintf()
但面临同样的问题。
秒是浮点类型吗?你为什么不把它分成更小的部分?第一次尝试:
sprintf(buf, "test");
然后:
sprintf(buf, "test %s", time_buf);
然后:
sprintf(buf, "test %5.2", seconds);
我认为您在这种情况下的问题是使用数组进行写入。
调试表明,您的代码只会将time_buf
的第一个元素写入buf
,其余内容将被忽略。
Eclipse忽略了这一事实,并没有给我任何类型的警告或错误,但也许VS在这种情况下有一些其他限制。
你可以做类似的事情
char buf[100];
char* temp;
temp = "--> Some Content <--";
sprintf(buf, "%s", temp);
这会将完整内容复制到缓冲区,但如果您可以在您的情况下使用它,这取决于您。
相关文章:
- 使用 EvtSetChannelConfigProperty() 函数时出现访问冲突错误
- cv::resize() 失败并出现访问冲突错误(由 NULL> 处的 <struct 引起)
- 将 std::string 作为参数从一个 DLL 传递到另一个 DLL 引发访问冲突错误
- 遵循官方 Direct2D 示例,但出现访问冲突错误
- C++ 抛出读取访问冲突错误,但我不确定为什么。平铺滑块益智游戏
- 为什么我的顶点缓冲区对象出现访问冲突错误?
- 销毁 Box2D 主体 - 读取访问冲突错误
- 编译哈希算法时出现内存访问冲突错误
- 使用glCreateBuffers时发生访问冲突错误
- 访问冲突错误在 (而 (info[x] != ))
- 反转字符串 c++ 时出现访问冲突错误
- 我无法弄清楚此访问冲突错误.有人可以在这里帮助我吗?
- 使用内存访问冲突错误
- 读取字符串的字符时出错-访问冲突错误C++
- 创建链接列表时发生访问冲突错误
- 调试优先级队列程序时出现访问冲突错误
- C++LinkedList错误:访问冲突错误
- 为什么我在用SDL2_ttf填充文本时出现访问冲突错误
- MFC:在工作线程中使用对象的成员函数时获取访问冲突错误
- 在C++中使用Box2D物理退出游戏时出现访问冲突错误