将不同结构的数组传递给函数

时间:2015-04-18 15:11:01

标签: c++ arrays struct parameter-passing

我需要传递不同的结构数组来运行,但我不知道该怎么做。每一次,我都会收到错误。我通过互联网,但我发现的所有例子都是关于将特定结构或只有一个结构数组传递给函数(Passing array of structures to function c++)但是如果我每次都有不同的结构并且我想将它传递给同一个函数怎么办。 / p>

所以我不确定我想做的事情是否适用。

如果我有以下结构,请澄清更多信息:

struct EVRL_Mapping2 {
    double avgMap2;
    int permutationMap2[2];
};
struct EVRL_Mapping3 {
    double avgMap3;
    int permutationMap3[3];
};
struct EVRL_Mapping4 {
    double avgMap4;
    int permutationMap4[4];
};
EVRL_Mapping2 EVRL_Map2[2]; //Mapping2: AC3,AC2 (2 mapping)
EVRL_Mapping3 EVRL_Map3[2]; //Mapping3: AC3,AC2,AC1 (2 mapping)
EVRL_Mapping4 EVRL_Map4[1]; //Mapping4: AC3,AC2,AC1,AC0 (1 mapping)

现在在.CC代码中,如果我有一个包含两个EVRL_Mapping2元素(EVRL_Map2 [2])的数组,我想在结构的两个元素之间找到avgMap2的最大值,并返回该元素的索引/位置。会是这样的: 如果是的话,对于我需要定义一个单独函数的每个结构是否意味着什么!?

int findMax(struct EVRL_Mapping2 myarray[], int size){
for(int i=0;i<size;i++){
//  printf("myarray[%d]=%d\n",i,myarray[i]);
}
    double max = myarray[0].avgMap2;       
    int index = 0;
    for(int i = 1; i<size; i++)
    {
    if(myarray[i] > max){
        max = myarray[i].avgMap2;
        index = i;
        printf("Inside if(): index=%d\n",index);
    }
    }
    return index; 
printf("Inside findMax(): index=%d\n",index);
}

现在调用并传递给这个函数:

findMax(EVRL_Map2,2);

但是,我对上面的函数定义有错误,代码没有编译。所以你能建议吗?

提前感谢您的帮助。

0 个答案:

没有答案