ページ 1 / 1
構造体
Posted: 2010年3月11日(木) 05:02
by けろん
構造体関連の質問です
わかる方回答よろしくお願いします
まず、ファイルは三つ
・構造体の宣言がしてあるファイル
・関数が宣言してあるファイル、構造体のメンバにアクセス(構造体の初期化関数あり)
・メイン関数があるファイル、関数を呼び出す
で、構造体の初期化関数を呼び出した後に、メインループで一定周期で関数を呼び出します
仮に呼び出されるたびに構造体のメンバ(A)に毎回1を足していくとします
そのときに関数内では構造体のメンバ(A)の値に対応した処理をします
いざ実行してみると構造体のメンバ(A)は初期化した値そのままになっているんです
原因はわかりません
やっぱり確実性のあるグローバル変数にしたほうがいいのでしょうか
よろしくお願いします

Re:構造体
Posted: 2010年3月11日(木) 08:13
by たかぎ
ソースを貼ってください。
Re:構造体
Posted: 2010年3月11日(木) 09:07
by tk
構造体はローカル変数ということですよね?
一定周期で呼び出される関数には参照渡しをしていますか?
でも初期化が出来ているということは参照渡しは出来ているということですよね・・・
たかぎさんの仰っている通り、ソースを貼ってもらうのがいいかと。
Re:構造体
Posted: 2010年3月11日(木) 09:10
by たいちう
> やっぱり確実性のあるグローバル変数にしたほうがいいのでしょうか
そんなことしてたらグローバル変数だらけになってしまいます。
原因を追究して構造体を確実に使えるようにするのがベストです。
それほど難しいことではないです。
で、書かれた情報だけでは原因はわかりませんので、
ソースを貼るか添付するかして下さい。
すいませんでした
Posted: 2010年3月11日(木) 23:50
by けろん
すいませんでした
DXライブラリを使って作ってます
龍神録と同じファイル構成(只単に私がそのまま使ってるだけですが)なので
projectのなかにの適当な章に入れれば動くと思います
なかみはソースファイルだけです
ちなみにSTG製作中です
とりあえず説明
main.cppのなかでは段階に分けて処理してます
iniで初期化→charで表示です
それぞれini.cppとchar.cppに記述してあります
ch_main関数ではdraw_char関数を呼び出してあります
そのdraw_char関数の中にあるようにch構造体のcntメンバの変化に合わせて表示する文字を変えていきます
このとき私が期待する結果は1~5迄行って1に戻るというものです
一応デバッグ用にcntを表示させています
ですが、実行するとずっと1のままでcntの表示は常に0です
素人考えですが、構造体のメンバにアクセスできてないのだと思います
蛇足ですがこれを応用して一定サイクルで表示画像が変わっていく描画をしようと思っています
だめだめな日本語ですいません
よろしくお願いします
Re:すいませんでした
Posted: 2010年3月12日(金) 10:41
by tk
> 素人考えですが、構造体のメンバにアクセスできてないのだと思います
構造体chにはアクセスできています。
ソースを見ただけですが、とりあえずdefine.hのPAD_MAXを256にすれば
chのメンバの値が0になることはないでしょう。
たぶん、main.cppのGetHitKeyStateAll_2関数の中で、
iが16以降になった時(iが16~256のどこかで)に、
メモリ上にあるchの値を書き換えているのではないでしょうか。
ありがとうございました
Posted: 2010年3月14日(日) 23:23
by けろん
できました!ありがとうございます
返信遅くなって申し訳ないです