我使用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