gpt4 book ai didi

c - 双指针向链表添加元素

转载 作者:太空狗 更新时间:2023-10-29 15:32:53 25 4
gpt4 key购买 nike

所以我正在尝试将一张牌添加到玩家的手上...如果我对顶部和最后一张牌使用双指针,则该牌的值只会传回主函数。但是 last->pt 无法转换为 temp,我该如何解决这个问题?

typedef struct card_s
{
char suit[9];
int value;
struct card_s *pt;
} card;

void deal_card(card **top, card **last, card dealt)
{
card *temp;

temp = (card*)malloc(sizeof(card));
strcpy(temp->suit, dealt.suit);
temp->value = dealt.value;

if(*top == NULL)
*top = temp;
else
*last->pt = temp; //FIX ME - something is going wrong at this point
*last = temp;
last->pt = NULL; //FIX ME - same problem as above
}

最佳答案

问题似乎是运算符优先级,所以使用括号应该可以解决:

(*last)->pt = temp;

它最初的编写方式是将 last 视为(单个)指针,并尝试取消引用成员 pt。相反,您想取消引用 last,然后访问结果指针的成员 pt

关于c - 双指针向链表添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20448395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com