错误:在struct中的'='标记之前预期':',',',';','}'或'__attribute__'

-1 c malloc struct token

使用gcc -Wall -std = c99进行编译时遇到错误:

pokerhand.c:20:17: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token
Card *cards = malloc(sizeof(Card)*5);

这是我的错误发生的代码

typedef struct card 
{
    char suit;
    char *face;
} Card;

typedef struct hand 
{
    Card *cards = malloc(sizeof(Card)*5);
    char *result;
} Hand;
Run Code Online (Sandbox Code Playgroud)

在这些结构之前我所拥有的只是标题包括

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
Run Code Online (Sandbox Code Playgroud)

use*_*738 5

您不能在结构声明中编写代码.那是错的.

我打赌这会解决错误

typedef struct hand 
{
    Card *cards;
    char *result;
} Hand;
Run Code Online (Sandbox Code Playgroud)

稍后,当您使用该类型声明适当的变量时,可以分配给它.

这也行得通

typedef struct hand 
{
    Card cards[5];
    char *result;
} Hand;
Run Code Online (Sandbox Code Playgroud)

如果您认为每次hand都会包含5卡片,那么您可以像这样添加卡片.

在第一种情况下,您需要分配cards,然后在完成它后释放它.