将整个结构数组传递给函数时出现问题 我对C++和编程有点新的认识。为了好玩,我正在翻拍旧版本的《小精灵》,但我很难通过一个完整的结构作为辩论
这是一个简短的版本,以突出我遇到的问题:将整个结构数组传递给函数时出现问题 我对C++和编程有点新的认识。为了好玩,我正在翻拍旧版本的《小精灵》,但我很难通过一个完整的结构作为辩论,c++,arrays,function,structure,C++,Arrays,Function,Structure,这是一个简短的版本,以突出我遇到的问题: struct Enemy_Pokeman { string opp_name; int num_pokeman; int pokeman_LVL; }; void pl_Pokeman(Enemy_Pokeman); void pokeman_data(string opp_name, int num_pokeman, int pokeman_ID[], int pokeman_LV
struct Enemy_Pokeman
{
string opp_name;
int num_pokeman;
int pokeman_LVL;
};
void pl_Pokeman(Enemy_Pokeman);
void pokeman_data(string opp_name, int num_pokeman, int pokeman_ID[], int pokeman_LVL[],
int purpose)
{
Enemy_Pokeman enemypokeman[num_pokeman];
enemypokeman[0].opp_name = opp_name;
enemypokeman[0].num_pokeman = num_pokeman;
for(int i=0; i<num_pokeman; i++)
enemypokeman[i].pokeman_LVL = pokeman_LVL[i];
pl_Pokeman(enemypokeman); //Function call - Codeblocks detects error
//on this line
}
void pl_Pokeman(Enemy_Pokeman enemy)
{
cout << endl;
}
struct敌人_Pokeman
{
字符串opp_名称;
国际数学家;
国际博克曼酒店;
};
虚空普卢波克曼(敌人波克曼);
void pokeman_数据(字符串opp_name,int num_pokeman,int pokeman_ID[],int pokeman_LVL[],
(用途)
{
敌人(博克曼)埃尼米博克曼(num);;
enemypokeman[0]。opp_name=opp_name;
灌肠者[0].num_pokeman=num_pokeman;
对于(int i=0;对于单个结构,i)-
pl_Pokeman(&enemypokeman,size); // pass it with size
当您将结构作为参数传递时,应使用&
运算符传递
pl_Pokeman(&enemypokeman); // Fix 1
在捕捉它时,您需要使用结构指针捕捉它
void pl_Pokeman(Enemy_Pokeman *); // Fix 2
结构数组-
pl_Pokeman(&enemypokeman,size); // pass it with size
抓住它的时候
void pl_Pokeman(Enemy_Pokeman (*)[], int );
函数pl_Pokeman
仅在您传入一组敌人_Pokeman
您可以更新pl\u Pokeman函数
以将数组作为输入:
void pl_Pokeman(Enemy_Pokeman enemy[], int arraySize);
或
模板
无效普卢波克曼(敌人波克曼和敌人)[N])
您正在向您的函数传递整个敌方Pokeman数组,而不仅仅是一个元素。函数只需要一个元素。此外,您正在函数中创建该数组,因此它是一个局部变量。如果函数pokemon_data
返回,则该数组将被销毁。谢谢!我在测试时尝试过这个方法我们正在尝试不同的选择,但一定是忽略了它。它现在运行得很好。