Visual C++ 2008 Express Edition を使っています。
シューティングゲームのサンプルで勉強しています。
すべで正常終了したあとダイヤログボックスが
出てくる時にMicrosoft Visual C++ Debug Library
と言うエラーが発生しました。
状況は以下のとおりです。
Program:C:\DxLib_VC\サンプルプログラム実行用フォルダ\Debug\DxLib_VC2008用.exe
Module:C:\DxLib_VC\サンプルプログラム実行用フォルダ\Debug\DxLib_VC2008用.exe
File:
Run-Time Check Failure #3 - The variable 'temp' is being used without being initialized
(Press Retry to debug the application)
Run-Timeの部分から自分なりに調べてみたのですが
ランタイム・チェック失敗#3-変数'temp'は初期化されずに使用されています。
と書いてあると思うのですが、tempの部分のコードは以下です。
(define.h)
struct E_SHOT{
bool flag;//弾が発射中かどうか
double x;//x座標
double y;//y座標
int gh;//グラフィックハンドル
int width,height;//画像の幅と高さ
int pattern;//ショットパターン
int speed;//弾スピード
};
#define ENEMY_SNUM 50//敵の弾の上限
(enemy.cpp)
int temp;
//弾画像読み込み
if(stype==0){
temp=LoadGraph("enemyshot1.png");
}
//サイズ取得
int w,h;
GetGraphSize(temp,&w,&h);
//弾の初期化
for(int i=0;i<ENEMY_SNUM;++i){
shot[i].flag=false;
shot[i].gh=temp;
shot[i].width=w;
shot[i].height=h;
shot[i].pattern=s_pattern;
shot[i].speed=speed;
shot[i].x=x;
shot[i].y=y;
}
正常終了後のエラーがなぜでるのかについてと、
その内容の部分について教えてください。
お願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
int temp;
//弾画像読み込み
if(stype==0){
temp=LoadGraph("enemyshot1.png"); //←stype==0のときしかtempが初期化されない
}
//サイズ取得
int w,h;
GetGraphSize(temp,&w,&h); //←stype!=0のときのtempはどうなる?
//弾の初期化
for(int i=0;i<ENEMY_SNUM;++i){
shot[i].flag=false;
shot[i].gh=temp; //←stype!=0のときのtempはどうなる?
shot[i].width=w;
shot[i].height=h;
shot[i].pattern=s_pattern;
shot[i].speed=speed;
shot[i].x=x;
shot[i].y=y;
}
stype!=0のときもtempが初期化されるように直してみましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# c言語 int temp = 0; if(isdigit(arr[i])){ temp=arr[i] 2 2022/03/27 01:44
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# int temp = 0; if(isdigit(arr[i])){//文字が数字であれば(0~9) 1 2022/03/27 01:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
unsigned int に0xffffffを代入...
-
argvのNULLチェック
-
乱数生成について
-
クリックされた地点が2点の線分...
-
シェアウェアの作り方
-
CppUnitはCプログラムにも使え...
-
再起呼び出しの回数をカウント...
-
ヒストグラム均等化処理プログラム
-
whileとifを使い偶数を出すには
-
複数の共有メモリの作成
-
2の補数を計算するプログラム
-
16bitで乱数を生成する方法
-
迷路の解を見つけるアルゴリズム
-
intとlongは同じ?
-
3のつく数と3の倍数を表示 C言語
-
| (or) を使った関数の引数の作...
-
C言語での引数の省略方法
-
Notepad++の関数リスト表示の変...
-
マイナスからプラスへ転じた時...
-
【C++】関数ポインタの使い方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2の補数を計算するプログラム
-
再起呼び出しの回数をカウント...
-
条件が多い場合
-
intとlongは同じ?
-
argvのNULLチェック
-
画像の拡大・縮小
-
C++ bmp 透過処理
-
C言語で%を使わない余りの出し方
-
C言語で簡単なパックマンゲーム...
-
C++で表を作成したいのです ...
-
コマンドプロンプトのウィンド...
-
【C#】SQL文の中に変数を埋め込...
-
カードシャッフルのブログラム...
-
迷路を脱出する経路探索プログ...
-
複数の共有メモリの作成
-
c++ TCHARで文字化け
-
関数とビット列
-
迷路の解を見つけるアルゴリズム
-
OpenCVによる4値化について
-
opencvとmbedのシリアル通信で...
おすすめ情報