Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将整个结构数组传递给函数时出现问题 我对C++和编程有点新的认识。为了好玩,我正在翻拍旧版本的《小精灵》,但我很难通过一个完整的结构作为辩论_C++_Arrays_Function_Structure - Fatal编程技术网

将整个结构数组传递给函数时出现问题 我对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
返回,则该数组将被销毁。

谢谢!我在测试时尝试过这个方法我们正在尝试不同的选择,但一定是忽略了它。它现在运行得很好。