"strings" 声明的 gcc 数组失败

gcc array of "strings" declaration failing

我正在尝试编写一个简单的 C 程序,但我在声明 "string" 数组时遇到了问题。以下代码编译无误:

#define HAND_SIZE 10;
int main()
{
    char * cards[13] = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};

    int player[HAND_SIZE];
}

但我不能将播放器变成 "strings" 的数组而不是整数。如果我执行以下任一操作:

char * player[HAND_SIZE];

char player [HAND_SIZE][];

char player [HAND_SIZE][5];

//repeat the above with '= {}' and '= {""}' initializations

我收到错误:

 error: expected ‘]’ before ‘;’ token

为什么会这样,我如何在 c 中声明一个 "strings" 的空数组?

预处理器指令不应以分号结尾

#define 行结束后的分号给了你错误,这会起作用:

#define HAND_SIZE 10
int main()
{
    char * cards[13] = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};

    int player[HAND_SIZE];
}