gpt4 book ai didi

c - 使用 realloc 调整动态数组的大小

转载 作者:行者123 更新时间:2023-11-30 15:19:42 25 4
gpt4 key购买 nike

我试图扩展我的完整玩家名单。

当我使用realloc函数时,它会保存我的播放器(除了最后一个)。我的意思是,如果我的阵列中有 4 个玩家,并且我尝试将阵列扩展到 7 个,我会得到一个大小为 7 的新阵列,并且只有 3 个玩家。

这是函数的一部分:

void initializeListForTree(Player** players, int listSize)
{
int formulaSize = bla bla bla.....
players = (Player **)realloc(players, sizeof(Player *)*formulaSize);
if (!players)
{
printf("memory allocation failed\n");
}
}

最佳答案

更多类似:

void initializeListForTree(Player*** players, int listSize)
{
int formulaSize = bla bla bla.....
void *p = realloc(*players, sizeof(Player *)*formulaSize);

if (!p) {
printf("memory allocation failed\n");
}
else {
*players = p;
}
}

在调用站点

Player **playerslist = NULL;   

initializeListForTree(&playerslist, 1);
...
initializeListForTree(&playerslist, 2);
etc..

当然,只有当您的类型是指向指针列表的指针时才如此。

关于c - 使用 realloc 调整动态数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30532066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com