1. ホーム
  2. c++

未処理の例外 0xC0000005: アクセス違反の書き込み場所

2022-02-10 18:57:32

vs2010で<<を実行するたびに以下のコードがエラーになり、タイトルのようなエラーメッセージが出てファイルが書き込めなくなります。

未処理の例外 0xC0000005: アクセス違反の書き込み場所

string filePath="file.txt";
ofstream file(filePath);
file << "a" << endl;
cout << "a" << endl;

このエラーは通常、ヌルポインタや境界外の配列にアクセスした場合に発生しますが、ここでは発生せず、英語でウェブ検索すると、MDdモードであれば、私のプロジェクトはMDモードに設定されており、MDdモードに変更した後は、このようなエラーを催促しなくなったとのことです。

MDとMDdの違いは、dがついているのがデバッグモードで、dがついていないのがリリースモードです。私の元のプロジェクトはデバッグモードに設定されており、リリースモードに設定されたランタイムライブラリと何かが衝突していたのかもしれません。プロジェクトをリリースモード、ランタイムライブラリをMDに設定すると、このようなエラーは発生しません。

<スパン アクセス違反は、コンピュータのユーザーが実行するプログラムが、使用するように指定されていない記憶領域にアクセスしようとしたときによく発生します。