我用Google搜索了一下,但我没有找到任何问题的答案。 我正在尝试做的是在另一个函数中调用我的函数。 我已经缩短了我的代码,所以你的阅读时间不会太长。 这就是我的代码的样子:
void hearts(struct Card *cardDeck);
int main()
{
return 0;
}
void hearts(struct Card *cardDeck)
{
for (int i = 0; i < 1; i++)
{
switch (cardDeck[i].value + 1)
{
case ACE: printf("Ace ");
break;
case JACK: printf("Jack ");
break;
case QUEEN: printf("Queen");
break;
case KING: printf("King ");
break;
default: printf("%d ", cardDeck[i].value + 1);
break;
}
printf("of hearts");
printf("\n");
}
}
void randomize() {
int random_card;
random_card = card() % 4 + 1;
if (random_card == 1) {
hearts(); //It gives me an error here, why?
}
}
所以基本上,我不能叫心(),我的意思是,视觉工作室给我一个错误,我称之为太少的论点,我不明白。 会喜欢这里的指导。
答案 0 :(得分:2)
看,你是如何宣布心灵的。
void hearts(struct Card *cardDeck)
这意味着它将指向结构卡。 你没有任何争吵地打电话。
if (random_card == 1) {
hearts(); //calling without any argument .
}
因此,解决方案是创建一个指向结构卡和
的指针if (random_card == 1) {
struct Card c1;
hearts(&c1); //passing the address of struct card
}
答案 1 :(得分:-2)
您使用hearts();
创建了空struct
,并且在调用它时,您并未添加您放入的参数,因此您的编译器会抛出错误。
你需要给它一个指针,用于卡片。