gpt4 book ai didi

c - 重新分配一个结构,c

转载 作者:行者123 更新时间:2023-12-04 10:59:06 25 4
gpt4 key购买 nike

我有下一个结构

struct Board
{
int width;
int height;
char **board;
}


我想扩展** board,这意味着我需要更多的内存,因此需要调用
realloc()。所以我的问题是我该怎么做-我应该分别在数组的每一行上调用realloc()并在整个结构上调用它吗?
谢谢!

最佳答案

您需要在malloc上调用realloc而不是board。实例化Board的对象时,没有为成员board分配内存;因此,这不是重新分配内存的问题,而是以multidimensional arrays的常规方式为board分配内存。

#include <stdlib.h>

int **array;
array = malloc(nrows * sizeof(int *));
if(array == NULL)
{
fprintf(stderr, "out of memory\n");
exit or return
}
for(i = 0; i < nrows; i++)
{
array[i] = malloc(ncolumns * sizeof(int));
if(array[i] == NULL)
{
fprintf(stderr, "out of memory\n");
exit or return
}
}


一次,您已经分配了内存,然后如果您需要扩展 board(例如, board最初是2x2,现在您希望它是6x6),则以与调用 realloc相同的顺序调用 malloc初始化 board

关于c - 重新分配一个结构,c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7079828/

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