2013-06-18 30 views
6

正在使用VC++控制檯應用程序。VC++中的異常錯誤c0000005

此應用程序在Appdata \ Roaming文件夾中發送一段文件一段時間。

什麼情況是正在此崩潰錯誤:

Problem signature: 
Problem Event Name: APPCRASH 
Application Name: App.exe 
Application Version: 1.0.0.2 
Application Timestamp: 51c02fa8 
Fault Module Name: PCMeter.exe 
Fault Module Version: 1.0.0.2 
Fault Module Timestamp: 51c02fa8 
Exception Code: c0000005 
Exception Offset: 000069eb 
OS Version: 6.1.7601.2.1.0.256.48 
Locale ID: 1033 
Additional Information 1: 0a9e 
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 
Additional Information 3: 0a9e 
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789 

任何人都可以請幫我解決這個問題

+3

加油;我們不是這個網站上的神靈。需要更多的線索。 – Bathsheba

+3

'c0000005'是訪問衝突的代碼。你需要停止引用無效的內存來解決這個問題。 –

+0

謝謝,我正在使用char txt [10000]讀取整個xml文件並將其傳遞給CString值以保存到服務器。這是否意味着內存違規? – user1465461

回答

24

異常代碼c0000005是訪問衝突的代碼。這意味着你的程序正在訪問(無論是讀還是寫)一個沒有權限的內存地址。最常見的原因是:

  • 訪問陳舊的指針。這是訪問已被釋放的內存。請注意,這種陳舊的指針訪問並不總是導致訪問衝突。只有當內存管理器將內存返回給系統時,纔會出現訪問衝突。
  • 讀取數組的末尾。這是當你有一個長度爲N的數組並且你訪問索引爲>=N的元素時。

要解決此問題,您需要進行一些調試。如果您不能在開發機器上的調試器下發生故障,您應該得到一個崩潰轉儲文件並將其加載到調試器中。這將允許您查看代碼中發生問題的位置,並希望將您引導至解決方案。您需要將調試符號與可執行文件關聯起來才能看到有意義的堆棧跟蹤。