Я пытаюсь изменить поля внутри структуры, для этого я использую ->
, но мой компилятор выдает ошибку, которая предлагает мне использовать ->
. Я не совсем уверен, почему. Возможно, я неправильно создал экземпляр своей структуры?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef enum suit_s {DIAMONDS, CLUBS, HEARTS, SPADES} Suit;
enum suit_s nCard;
int rankR;
int suit1;
typedef struct card_s {
int rank;
Suit suit;
} *Card;
int randCard(Card* rCard);
int getSuitName(Card* rCard);
int main(int argc, char *argv[]){
Card *rCard;
srand( (unsigned)time( NULL ) );
randCard(rCard);
getSuitName(rCard) ;
return 0;
}
int randCard(Card* rCard) {
int max_number = 10;
int minimum_number = 2;
rankR = rand() % (max_number + 1 - minimum_number) + minimum_number;
suit1 = rand() % (4 + 1 - 1) + 1;
if (suit1 == 1){
nCard = DIAMONDS;
}else if (suit1 == 2){
nCard = CLUBS;
}else if (suit1 == 3){
nCard = HEARTS;
}else if (suit1 == 4){
nCard == SPADES;
}
rCard->rank = rankR; // error here
rCard->suit = nCard; // error here
}
Журнал компилятора:
main.c: In function 'randCard':
main.c:42:8: error: '*rCard' is a pointer; did you mean to use '->'?
rCard->rank = rankR;
^~
->
main.c:43:8: error: '*rCard' is a pointer; did you mean to use '->'?
rCard->suit = nCard;
^~
->