我是结构编程的新手,当我尝试在 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。我可以通过企业没有问题,但克林贡我很挣扎。我得到各种各样的错误,不管我使用什么组合。目前的一个是:
error: cannot convert ‘klingonSt (*)[100]’ to ‘klingonSt**’ for argument ‘5’ to ‘void main_menu(char, char (*)[64], int&, enterpriseSt*, klingonSt**)’
我现在把它弄得这么乱。有人可以向我解释为什么它适用于企业而不适用于克林贡语吗?我在 Ubuntu 上使用 g++ 编译器。谢谢。