我正在尝试用 C 语言设计一个数据结构,我可以在其中将多个数组存储在一个结构中,其中每个数组的大小都不同。例如:
typedef struct task_list
{
int total_tasks;
unsigned int *task_array
}task_list;
typedef struct node_list
{
int total_nodes;
task_list *array_node
}node_list;
因此,如果我有 5 个节点,那么 total_nodes
将为 5
,我希望有 5 个后续数组,即 array_node[0]
, array_node[1]
... array_node[4]
。每个数组都包含无符号整数(任务)。问题是这些数组中的每一个都包含不同数量的任务(total_tasks
in struct task_list
),因此每个数组的大小都会不同。
如何为这些任务数组中的每一个创建和分配内存?以后访问它们的最佳方式是什么?
最佳答案
如果它们是一维数组,分配内存的最佳方法是通过 malloc。同样,由于它们是一维的,您可以通过数组表示法访问它们,注意不要超过 total_nodes 和 total_tasks 给定的界限。删除节点时使用 free 释放数组。如果数组节点变大,使用 realloc 使数组变大并保留旧指针。
关于c - 在C中的结构中存储多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18194790/