2013-06-18 8 views
6

Am arbeiten an VC++ Konsolenanwendung.Ausnahmefehler c0000005 in VC++

Diese Anwendung sendet eine Datei von AppData \ Roaming-Ordner für einen bestimmten Zeitraum.

Was passiert, ist dieser Absturz Störung erhalte:

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 

Könnte jemand bitte helfen Sie mir dieses Problem

+3

Komm schon; Wir sind keine Gottheiten auf dieser Seite. Brauche noch ein paar Hinweise. – Bathsheba

+3

'c0000005' ist der Code für eine Zugriffsverletzung. Sie müssen aufhören, auf Speicher zu verweisen, der nicht gültig ist, um das zu beheben. –

+0

Danke, Ich lese die ganze XML-Datei mit Char txt [10000] und übergebe es an CString Wert zum Speichern auf dem Server. Bedeutet dies Speicherverletzung? – user1465461

Antwort

24

Ausnahmecode c0000005 ist der Code für eine Zugriffsverletzung zu lösen. Das bedeutet, dass Ihr Programm auf eine Speicheradresse zugreift (lesen oder schreiben), für die es keine Rechte hat. Am häufigsten wird dies verursacht durch:

  • Zugriff auf einen veralteten Zeiger. Dies ist der Zugriff auf Speicher, der bereits freigegeben wurde. Beachten Sie, dass solche veralteten Pointerzugriffe nicht immer zu Zugriffsverletzungen führen. Nur wenn der Speichermanager den Speicher an das System zurückgegeben hat, erhalten Sie eine Zugriffsverletzung.
  • Das Ende eines Arrays ablesen. Dies ist der Fall, wenn Sie ein Array der Länge N haben und auf Elemente mit dem Index >=N zugreifen.

Um das Problem zu lösen, müssen Sie einige Debugging durchführen. Wenn Sie nicht in der Lage sind, den Fehler unter Ihrem Debugger auf Ihrem Entwicklungscomputer zu finden, sollten Sie eine Absturzspeicherdatei erhalten und sie in Ihren Debugger laden. Dadurch können Sie sehen, wo im Code das Problem aufgetreten ist, und Sie hoffentlich zur Lösung führen. Sie müssen die Debugging-Symbole mit der ausführbaren Datei verknüpft haben, um sinnvolle Stack-Traces zu sehen.