我可以将 malloc 与引用一起使用而不是指针吗?


static Player players[32];
Player* Player_constructor() {
    Player* player = malloc(sizeof(Player));
    // Do some initializations
    return player;
}
...
...
...
players[0] = Player_constructor();

问题是players[0]是类型 Player Player_constructor 是类型 Player* .

如何克服此问题?使用引用会有所帮助吗?

这里不需要动态分配:您的Player结构数组可以直接使用,无需malloc。处理初始化的一种简单方法是重写Player_constructor,如下所示:

void Player_constructor(Player* player) {
    // Do some initializations
}
...
Player_constructor(&players[0]);
应该是

static Player *players[32];

您可以创建一个指针数组而不是结构:

static Player * players[32];

最新更新