我使用sprintf方法将数据格式化为一个字符串,我想在使用VS 2008的C++控制台应用程序中写入一个文件。输入是一个特殊的消息,它具有各种变量和值(例如:类型'int'和值'10'/类型字符串和值“abc”等)当我发送两条消息,它完美的作品。但是,当我发送两条以上的消息时,它会给出运行时错误,说0xC0000005:访问冲突读取位置0xabababab。这是为什么发生?是否因为'sprintf'方法有默认的缓冲区长度?我怎样才能克服这个问题?'sprintf'方法是否有默认的缓冲区长度?
0
A
回答
1
不,没有默认大小。它会假定有足够的空间,并且可以按照格式化字符串的指定进行写入。
您的访问违规说阅读,它暗示说您的参数可能有问题,也许它们与格式化字符串不匹配。
在格式化字符串中使用%
代码时,您需要具有正确的参数,正确的类型和正确的顺序。
+0
嗨,非常感谢您的帮助。我会重新检查它。 – Isuru 2010-04-01 04:14:00
1
顺便说一句,你可能想看看this page。
0xABABABAB:微软的HeapAlloc()用于标记“无人区”保护字节分配后的堆内存
相关问题
- 1. 缓冲区是否有比较方法?
- 2. 缓冲区溢出缓冲区长度
- 3. 如何测试是否只有默认缓冲区打开?
- 4. sprintf缓冲区大小
- 5. WDF EvtIoDeviceControl缓冲区长度
- 6. GetPrivateProfileString - 缓冲区长度
- 7. Scala缓冲区:大小还是长度?
- 8. 是否可以将默认渲染缓冲区附加到FBO?
- 9. 是否可以创建并发送零长度缓冲区
- 10. recv()结果是否必须等于缓冲区长度?
- 11. sendto的最大缓冲区长度?
- 12. 调整AudioUnit缓冲区的长度
- 13. 默认的缓冲区最大尺寸和默认的SSIS
- 14. Tomcat 6默认缓冲区大小
- 15. kmalloc中的缓冲区是否也是DMA安全缓冲区?
- 16. 来自默认帧缓冲区的采样深度? (GL ES 3)
- 17. TCP缓冲区中的包总长度是否可以超过分配的缓冲区大小?
- 18. Sprintf缓冲区Char []尾随null
- 19. 程序崩溃这是有效的缓冲区[]的缓冲区..我认为
- 20. 如何增加MySQL缓冲区长度?
- 21. Nightmare.js截图缓冲区长度0
- 22. 文档长度不等于缓冲区
- 23. SignalR System.InvalidOperationException:缓冲区长度超过
- 24. Socket.Send缓冲区大小是否有限?
- 25. Qt是否有循环缓冲区?
- 26. Windows中CreateFile的默认缓冲区大小是多少?
- 27. ENSIME服务器缓冲区的限制长度;挂钩这个缓冲区
- 28. textarea是否具有Firefox默认的最大长度?
- 29. Netty - 使所有创建的缓冲区默认为little-endian
- 30. Vim:用默认缓冲区替换选择而不覆盖缓冲区
您需要向我们展示了实际的代码,你的解释是不明确的(足够的)。 – unwind 2010-03-31 08:49:12
由于这没有'C'标签,但是其中包含一个'C++'标签,您是否考虑过使用字符串流呢?与他们一起获得AV是困难的。 – sbi 2010-03-31 08:58:10