我正在尝试用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是另一个函数,它将根据其强度设置指针向量。
最佳答案
eval_strength()
期望将用于构造指针的指针作为参数。您试图将其传递给实际结构,而不是指向它的指针。
因此,您的if
语句应为:
if(eval_strength(&p->hands[i])) > p->best_hand){
看到不同?
关于c - 结构不兼容类型错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46525765/