结构不兼容类型错误

时间:2017-10-02 12:46:52

标签: c structure

我正在尝试用C编写扑克游戏。 我不允许更改功能:

void eval_strength(struct hand *h){

 //mycode

}

void eval_players_best_hand(struct player *p){

    int i; 
    p ->best_hand = p->hands[0];
      for(i=0; i <MAX_COMBINATIONS; i++){
         if(eval_strength(p->hands[i])) > p->best_hand){
           p->best_hand = p->hands[i];
       }
     }

有人可以帮我修复这些错误!

poker.c: In function ‘eval_players_best_hand’:

poker.c:181:15: error: incompatible types when assigning to type ‘struct hand *’ from type ‘struct hand’

  p->best_hand = p->hands[0];
           ^
poker.c:183:21: error: incompatible type for argument 1 of ‘eval_strength’

  if((eval_strength(p->hands[i])) > p->best_hand){

在函数void eval_players_best_hand(struct player * p)中,我试图评估数组中每只手的手的强度。然后我必须把最好的手指向最强的手。 eval_strength是另一个根据力量设置指针向量的函数。

1 个答案:

答案 0 :(得分:1)

eval_strength()期望指向struct hands的指针作为参数。您试图将实际结构传递给它,而不是指向它的指针。

因此,您的if语句应为:

if(eval_strength(&p->hands[i])) > p->best_hand){ 

看到区别?

相关问题