2013-06-18 9 views
6

Sto lavorando all'applicazione console VC++.Errore di eccezione c0000005 in VC++

Questa applicazione invia un file dalla cartella Appdata \ Roaming per un periodo di tempo.

Quello che succede è sto ottenendo questo errore di Crash:

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 

Qualcuno potrebbe per favore mi aiuti a risolvere questo problema

+3

Vieni; non siamo divinità su questo sito. Ho bisogno di altri indizi. – Bathsheba

+3

'c0000005' è il codice per una violazione di accesso. Dovrai smettere di fare riferimento alla memoria che non è valida per risolvere questo problema. –

+0

Grazie, Sto leggendo l'intero file xml usando char txt [10000] e passandolo al valore CString per il salvataggio sul server. Questo significa violazione della memoria? – user1465461

risposta

24

Codice di eccezione c0000005 è il codice per una violazione di accesso. Ciò significa che il tuo programma sta accedendo (leggendo o scrivendo) a un indirizzo di memoria al quale non ha diritti. Più comunemente questo è causato da:

  • Accesso a un puntatore non aggiornato. Questo è l'accesso alla memoria che è già stato trasferito. Si noti che tali accessi puntati al puntatore non comportano sempre violazioni di accesso. Solo se il gestore della memoria ha restituito la memoria al sistema, si ottiene una violazione di accesso.
  • Leggere la fine di un array. Questo è quando si dispone di una serie di lunghezza N e si accede agli elementi con indice >=N.

Per risolvere il problema è necessario eseguire un debug. Se non si è in grado di rilevare l'errore nel debugger sul proprio computer di sviluppo, si dovrebbe ottenere un file di dettagli di arresto anomalo e caricarlo nel debugger. Questo ti permetterà di vedere dove si è verificato il problema nel codice e, si spera, ti condurrà alla soluzione. Per visualizzare tracce di stack significative è necessario disporre dei simboli di debug associati all'eseguibile.