无法将结构数组传递给C中的函数

时间:2016-11-06 04:46:44

标签: c arrays pointers struct

学习C并且需要填充五个struct元素的数组,但我似乎无法弄清楚如何将struct数组传递给函数并且我一直收到错误:

error: conflicting types for 'dealFiveHand'

以下是代码:

#define HAND_SIZE 5

void dealFiveHand(struct Card *wHand[]);

struct Card {
    char suit;
    char face;
};

int main(void)
{
    struct Card *hand[HAND_SIZE];
    dealFiveHand(hand); 
}

void dealFiveHand(struct Card *wHand[])
{
   ...
}

我是否需要定义和初始化指针然后将该指针传递给函数?

2 个答案:

答案 0 :(得分:4)

至少你需要移动struct Card BEFORE函数dealFiveHand原型的定义 - 这样函数就知道它的参数类型。

struct Card {
    char suit;
    char face;
};

void dealFiveHand(struct Card *wHand[]);

答案 1 :(得分:3)

在定义之前,您指的是卡。在引用它之前首先声明它,作为函数dealFiveHand()

的参数