그래서 플레이어의 손에 카드를 추가하려합니다 ... 이중 포인터를 사용하는 경우에만 카드의 값이 주 기능으로 다시 전달됩니다 상단 및 마지막 카드 용. 그러나 last-> pt는 temp로 변환 할 수 없습니다. 어떻게 해결합니까?링크 된 목록에 요소를 추가하는 이중 포인터
(*last)->pt = temp;
그것이는 (단일) 포인터로 last
을 치료하고,하려고했던 원래 기록 된 방법 :
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
}
'la st'는'card **'이므로 반드시'last-> pt'가 구조체의 멤버 ('card')가 아닌 포인터 ('card *')의 멤버에 접근하려 할 것입니다. –