ファイルからデータを読み込むためのバッファを操作するために、vector :: resize、vector :: reserve、およびmemcopy操作を多く使用するプログラムを少し変更しました。私は単体テストをLinux上で走らせていましたが、色が飛んできましたが、Windowsマシンで同じテストを実行したところ、memory access violation occurred at address 0x0038e000, while attempting to read inaccessible data
が表示されています。C++のウィンドウ固有のメモリ問題を診断する方法
メモリリークや問題を検出するために私のプログラムに対してValgrindを実行しましたが、「すべてのヒープブロックが解放され、リークは発生しません」と返されました。
Windowsのメモリエラーの原因を突き止めるにはどうすればいいですか?
ありがとうございます!
valgrindは必要ありません。デバッガが必要です。このエラーを引き起こすコードの行を探し、ここから作業します。 –
プログラムの障害がコール履歴/スタックフレームを検査すると、デバッガで実行されます。 –
[アドレスサニタイザー](http://clang.llvm.org/docs/AddressSanitizer.html) –