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

标签 c arrays pointers struct

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

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[])
{
   ...
}

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

最佳答案

至少您需要在函数 dealFiveHand 原型(prototype)之前移动 struct Card 的定义 - 这样函数就知道其参数的类型。

struct Card {
    char suit;
    char face;
};

void dealFiveHand(struct Card *wHand[]);

关于c - 无法将结构数组传递给 C 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40446075/

相关文章:

c - 当我输入数组中元素的值时,在 for 循环中,在 for 循环之后然后进行转换

c - C 中的混淆代码

C 私有(private)变量 Get 和 Set 方法

javascript - 如何将某些内容 append 到数组?

c++ - 如何将数组 float* 转换为 float**?

c - 使用 scanf %p UB

.net - 64 位 CLR 可以使用压缩指针吗?

c++ - const char& 作为函数的参数

c - 如何测试标准输入是否以某个单词开头?

javascript - 迭代 JS 数组 + 数组属性