質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

ポインタ

ポインタはアドレスを用いてメモリに格納された値を"参照する"変数です。

Q&A

解決済

1回答

12293閲覧

C言語でアクセス違反が発生しました

LightGreenLeaf

総合スコア7

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

ポインタ

ポインタはアドレスを用いてメモリに格納された値を"参照する"変数です。

0グッド

0クリップ

投稿2016/07/24 08:05

###前提・実現したいこと
超初心者です。
クリックした場所からキャラクターが移動していくだけのプログラムを作っています。
アクセス違反が発生してしまいましたがどこを直せばいいかわかりません。

###発生している問題・エラーメッセージ

初回例外が 0x018DBC0F (東方ピューン.exe) で発生しました: 0xC0000005: 場所 0x009E4000 の読み取り中にアクセス違反が発生しました。 ハンドルされない例外が 0x018DBC0F (東方ピューン.exe) で発生しました: 0xC0000005: 場所 0x009E4000 の読み取り中にアクセス違反が発生しました。

###該当のソースコード

C言語

1#include "DxLib.h" 2 3int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 4 LPSTR lpCmdLine, int nCmdShow) 5{ 6 ChangeWindowMode(TRUE);//ウインドウモード 7 8 if (DxLib_Init() == -1)return -1;//DXライブラリ初期化 9 10 //変数の定義 11 int x[100]; 12 int y[100]; 13 int a = 0, b; 14 15 //プログラム 16 for (; a != 100; a++){ x[a] == -50; }//xの初期化 17 a = 0; 18 for (; a != 100; a++){ y[a] == 0; }//yの初期化 19 a = 0; 20 21 while (ProcessMessage() == 0 && 22 CheckHitKey(KEY_INPUT_ESCAPE) == 0)//メインループ_エスケープで終了 23 { 24 for (b = 0;; b++){ LoadGraphScreen(x[b], y[b], "1.png", TRUE); } 25 while((GetMouseInput() == MOUSE_INPUT_RIGHT) == 0) 26 { 27 GetMousePoint( &x[a], &y[a] ); 28 if (a == 100){ a = 0; } 29 else{ a++; } 30 } 31 for (b = 0; b!=100 ; b++){ x[b] = -5 ; } 32 } 33 34 WaitKey();//キー待機 35 36 DxLib_End();//DXライブラリ終了 37 38 return 0;//終了 39} 40 41 42

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

24行目の

for (b = 0;; b++){ LoadGraphScreen(x[b], y[b], "1.png", TRUE); }

が無限ループになっていて、配列の大きさより大きい領域をアクセスするためです。
このループを抜ける手段を用意しましょう。

投稿2016/07/24 08:09

tohshima

総合スコア374

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LightGreenLeaf

2016/07/24 08:14

ありがとうございます!解決しました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問