无法创建全局结构数组

问题描述 投票:1回答:1

我试图创建一个全局的结构数组,但是我认为我会这样做的方式不起作用。对于我需要的应用程序要求它是全局的,但是在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;
}

我收到错误:错误:'player'unclaclared(首次使用此函数)players = malloc(numPlayers * sizeof(player));

c arrays structure
1个回答
2
投票

错误的来源 - >你在malloc中使用的是玩家而不是玩家,这是不正确的。玩家是struct的名字,你需要malloc中的指针名称。

首先 - >你需要纠正你的malloc声明 - >使用players = malloc(numPlayers*(sizeof(*players));

第二 - >当main()函数的返回类型是int时,你的return语句似乎缺失了。

© www.soinside.com 2019 - 2024. All rights reserved.