我试图搜索此问题,但无法解决。我尝试使用struct和union,但是我认为使用的不正确。

我想在另一个函数中使用数组result randomNum()的成员。最好的方法是什么?

这是我的一些代码:

 void randomNum()
 {
    int i;
    int result[10];
    int x[10];
    int y[10];
    for ( i=0; i<11; i++)
    {
        x[i]=  100+rand()%100;
        y[i]=   80+rand()% 90;
        result[i] = ( -2*(x[i]) ) + ( 5*(y[i]) );
        printf("Fitness = %d \n" , result[i]);
    }
}


我想在此功能中使用result[10]

void thebest()
{
    printf("Fitness = %d \n" , randomNum.result[2]);
}

最佳答案

您不能从函数外部访问局部值。相反,请尝试在最后将randomNum更改为return result[2],并将签名中的void更改为int

或者,可以将result用作thebest函数内部的变量,然后将其传递给randomNum进行填写,然后可以将其从thebest用作常规数组。

但是,从randomNum函数返回您感兴趣的特定项目可能是最简单,最干净的解决方案。

另外,在调用randomNum时,请不要忘记括号:randomNum()而不是使用点。

关于c - 请求成员“结果”不是结构或 union ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27118700/

10-11 22:09