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];