web-dev-qa-db-ja.com

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

誰でもこの問題を解決するのを手伝ってください

12
user1465461

例外コードc0000005は、アクセス違反のコードです。つまり、プログラムは、権限のないメモリアドレスにアクセスしています(読み取りまたは書き込みのいずれか)。最も一般的な原因は次のとおりです。

  • 古いポインタにアクセスします。すでに割り当て解除されているメモリにアクセスしています。このような古いポインターアクセスは、常にアクセス違反になるとは限らないことに注意してください。メモリマネージャがシステムにメモリを返した場合にのみ、アクセス違反が発生します。
  • 配列の末尾を読み取ります。これは、長さNの配列があり、インデックス>=N

問題を解決するには、デバッグを行う必要があります。開発マシンのデバッガで障害が発生する可能性がない場合は、クラッシュダンプファイルを取得して、デバッガにロードする必要があります。これにより、コードのどこで問題が発生したかを確認でき、うまくいけば解決策に導くことができます。意味のあるスタックトレースを表示するには、実行可能ファイルにデバッグシンボルを関連付ける必要があります。

34
David Heffernan