具体的には
typdef struct
{
char name[64];
int kind;
int state1,stae2;
}Cmd_t;
typdef struct
{
int img_num;
Cmd_t Cmd[30];
}Data_t;
extern Data_t Data;
extern void enter_data(Cmd_t *p[30]);
void play_data()
{
//
//ここで構造体のデータを外部から読み込んでCmdsの各構造体に格納しています
enter_data(Data.Cmd);
}
//別のcppファイルにて
Cmd_t play_cmd;
void enter_data(Cmd_t *p[30])
{
static int num=0;
play_cmd.kind = *p[num]->kind;
play_cmd.state1 = *p[num]->state1;
//他のデータも同様にplay_cmdに格納します
//play_cmdに格納したデータを元に必要な処理を行います
num++;
}
p[num]->
のような形でnumの値をひとつずつ増やしていくことでCmd[30]の中のデータを順番に参照できるかと思いました。
配列のポインタを引数として渡す時は[]を付けずに、配列の名前をそのまま渡せばいい(ハズ)ですのでData.Cmdを引数として渡せばData.Cmd[30]の構造体に中にあるデータを参照できるかと思ったのですが
error C2664: 'enter_data' : 1 番目の引数を 'Cmd_t [30]' から 'Cmd_t *[]' に変換できません。
というエラーが出ました、もう半日以上悩んだり調べたり色々試したりしているのですが上手くいきません。
構造体の中で宣言した構造体型配列のポインタを引数として関数に渡し、p[num]->のような形で操作するにはどうすればいいのでしょうか?
または、どこを修正すればいいでしょうか?
開発環境は
OS:Windows7
エディター:Visual C++ 2008 Express Edition
となっています。