ポインタの壁@シューティング
こんにちは。あ、時間的にこんばんはなのかな。時間が過ぎるのってはやーいですね。
C言語でシューティングですが、メモリとポインタの壁に当たってる??みたいです。
現在、前のシナリオファイルの勢いで、敵の動きを外部ファイルから読み取り、敵の構造体のサンプル(HP、名前、攻撃パターンだけ)をまとめて敵生成時にコピーして使おう!としているのですが・・・・
- 敵パターンのスクリプトできた。
- 敵パターンのスクリプトを読めた。
- 1行づつ読み込んでCommand構造体(前エントリーのWAIT 1000とかが入っている構造体です)に格納できた。
- Command構造体を敵動作パターンに当て込みたい・・・
というところで、アクセス違反エラー。。。。これと格闘して数時間。
構造体宣言でメモリ確保していたけど、途中からスタック領域(?)食いつぶしてしまったぽくて、慣れない(ポインタ+malloc)でヒープ領域確保にしてます。。。が、
メモリ確保できてるのかポインタが正しいのかよくわからんことに・w・;
とにかく、慣れていかないと。
その流れでですが〜
mallocで領域確保するとき、階層化された構造体(配列?)を確保するときってどうしたらいいのでしょうか。例えば、
struct A{ char *pt;//文字配列 }; struct B{ A *a;//A構造体配列 };
のとき、文字配列の領域確保とA構造体配列確保の2重ループになるのかな。
それとも一旦ポインタだけ持たせて後で領域確保??
ううむ、メモリ周りって苦手意識があるので怖ひ;