无法创建结构的全局数组

时间:2018-09-13 05:29:01

标签: c arrays structure

我正在尝试构建全局的结构数组,但是我认为自己执行此操作的方法不起作用。对于我需要的应用程序,它必须是全局的,但是在main()函数内部之前,它不知道大小。我的代码如下:

#include <stdlib.h>
#include <string.h>
#include <ctype.h>
//
struct player {
    char letter;
};

struct player *players;

int main(int argc, char** argv){
    check _variables();
    int *inpBuff;
    inpBuff = convert_input(argv[1], argv[2]);
    int numPlayers = inpBuff[0];
    players =  malloc(numPlayers*sizeof(player));
    return 1;
}

我收到错误:     错误:未声明“玩家”(此功能首次使用)       玩家= malloc(numPlayers * sizeof(player));

1 个答案:

答案 0 :(得分:2)

错误源-> 您正在malloc中使用 player 代替 players ,这是不正确的。播放器是struct的名称,您需要在malloc中使用指针的名称。

首先->您需要更正malloc语句->使用players = malloc(numPlayers*(sizeof(*players));

第二个->当main()函数的返回类型为int时,您的return语句似乎丢失了。