c - 初始化结构数组 - C 代码错误

标签 c pointers struct

我有一个名为 player 的结构,我需要制作一个 MAX 播放器数组,所以我基于以下页面 C - initialize array of structs ,像这样:

DEFINE MAX 200

typedef struct
{
   int ID;
} Player;

Player* PlayerList = malloc(MAX * sizeof(Player));

问题是我不断收到以下错误

error: expected expression before ‘=’ token
error: initializer element is not constant

基本代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX = 200;

typedef struct
{
    int ID;
} Player;

Player *PlayerList;

int start()
{
    PlayerList = malloc(MAX * sizeof(Player));
    return 1;
}

int main(int argc, char const *argv[])
{
    /* code */
    return 0;
}

最佳答案

您不能从任何函数外部调用 malloc()。只需声明 Player* PlayerList;,然后让您在 main() 中做的第一件事就是 PlayerList = malloc(MAX * sizeof(Player));

关于c - 初始化结构数组 - C 代码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16328368/

相关文章:

c - 在C中复制字符串(包括内存分配、指针等)

c代码文件崩溃并且编译时没有错误

c - C中指针的问题

c 答案错误

c - 结构的大小怎么可能是 4 的非倍数?

c - 用复杂的构建过程夹板整个程序

c++ - sizeof(T) 增量中的字节智能指针算法 : Undefined Behaviour?

c - 使用双指针为结构内的动态结构数组分配内存**

c - 什么时候匿名结构和 union 在 C11 中有用?

c - 打印 char[] 核心转储 C