2013-06-18 1 views
6

Работаю над консольным приложением VC++.Ошибка исключения c0000005 в VC++

Это приложение отправляет файл из папки 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

Спасибо, читаю весь XML-файл, используя char txt [10000] и передавая его в значение CString для сохранения на сервере. Означает ли это нарушение памяти? – user1465461

ответ

24

код Exception c0000005 код для нарушения прав доступа. Это означает, что ваша программа осуществляет доступ (чтение или запись) адреса памяти, к которому у него нет прав. Чаще всего это вызвано:

  • Доступ к устаревшей стрелке. Это доступ к памяти, которая уже была освобождена. Обратите внимание, что такие устаревшие обращения к указателям не всегда приводят к нарушениям доступа. Только если диспетчер памяти вернул память в систему, вы получаете нарушение доступа.
  • Считывание конца массива. Это когда у вас есть массив длиной N, и вы получаете доступ к элементам с индексом >=N.

Для решения проблемы вам потребуется выполнить некоторую отладку. Если вы не в состоянии получить ошибку в своем отладчике на своей машине разработки, вы должны получить файл дампа аварийной ситуации и загрузить его в свой отладчик. Это позволит вам увидеть, где в коде возникла проблема, и, надеюсь, приведет вас к решению. Вам нужно иметь отладочные символы, связанные с исполняемым файлом, чтобы видеть значимые трассировки стека.