私は構造プログラミングが初めてで、C ++で配列の構造を渡そうとするとかなり混乱します。大学でやるべきプロジェクト、スタートレックのゲームがあります。サンプルコードは次のとおりです。
void main_menu(char,char [][sz2],int&,struct enterpriseSt*,struct klingonSt*[100]);
void combat_menu(char [][sz2],struct enterpriseSt*,int&,struct klingonSt*[100]);
struct enterpriseSt
{
int energy_level;
int damage;
int torpedo_count;
};
struct klingonSt
{
int energy_level;
int damage;
int position[2];
};
int main()
{
struct enterpriseSt enterprise;
enterprise.energy_level=energy_ent_max;
enterprise.damage=0;
enterprise.torpedo_count=10;
struct klingonSt klingon[100];
main_menu(command,galaxy,turn,&enterprise,&klingon);
return 0;
}
void main_menu(char command, char galaxy[][sz2],int& turn,struct enterpriseSt * enterprise,struct klingonSt * klingon[100])
{
combat_menu(galaxy,enterprise,turn,klingon);
}
私は、enterpriseSt と klingonSt の 2 つの構造を持っています。エンタープライズを問題なく通過できますが、クリンゴンでは苦労しています。どの組み合わせを使用しても、あらゆる種類のエラーが発生します。現在のものは次のとおりです。
error: cannot convert ‘klingonSt (*)[100]’ to ‘klingonSt**’ for argument ‘5’ to ‘void main_menu(char, char (*)[64], int&, enterpriseSt*, klingonSt**)’
私は今それをとても混乱させました。エンタープライズでは機能するのにクリンゴンでは機能しない理由を誰か説明してもらえますか? Ubuntu で g++ コンパイラを使用しています。ありがとう。