[解決済み] 0xC0000005: アクセス違反(場所 0x00000000 の読み込み
2022-02-18 17:30:18
質問
私が制作しているスペースインベーダーゲームで、非常に奇妙な問題が発生しています。基本的にアクセス違反のエラーが発生します。
<ブロッククオートの 0x5edad442 (msvcr100d.dll) で未処理の例外が発生しました。 SpaceInvaders.exe: 0xC0000005: アクセス違反の読み取り場所 0x00000000.
ビジュアルスタジオでデバッグをすると、"strcmp.asm"が表示されます。私のコードでstrcmp()を使用していないことに注意してください。このコードに何か問題があるのでしょうか、それとも私が含めたものの範囲を超えている問題なのでしょうか?どんな助けでもありがとうございます。
const char* invarray[] = {"invader0.png", "invader1.png", "invader2.png", "invader3.png", "invader4.png"};
int i=0;
//Creates 55 invaders
for (int y=0; y<250; y+=50){
for (int x=0; x<550;x+=50){
Invader inv(invarray[y/50], x+50, y+550, 15, 15, 1, false, 250);
invaders[i] = inv;
}
}
インベーダーのコンストラクタです。
Invader::Invader(const char *pic, int x, int y, int w, int h, bool dir, bool des, int point) : MovingObject(pic, x, y, w, h) , direction(dir), destroyed(des), b(0), points(point){};
MovingObject コンストラクタ
MovingObject::MovingObject(const char *pic, int x, int y, int w, int h):picture(pic), positionX(x), positionY(y), width(w), height(h) {};
解決方法は?
この行は怪しいですね。
invaders[i] = inv;
インクリメントされることはない
i
に代入し続け、その結果
invaders[0]
. もしこれが、コードを例題に縮小した際の単なるミスであれば、以下の計算方法を確認してください。
i
のサイズをオーバーしている可能性があります。
invaders
.
もし、あなたのコメントにあるように、あなたが55の
invaders
であることを確認します。
invaders
は、この数字を処理するために正しく初期化されています。
関連
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み】識別子 "string "は未定義?
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン