【发布时间】:2013-08-12 19:09:34
【问题描述】:
我正在尝试在 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),因此每个数组的大小都会不同。
如何为每个任务数组创建和分配内存?以后访问它们的最佳方式是什么?
【问题讨论】:
-
"... 我可以在一个结构中存储多个数组,其中每个数组的大小不同...",这是不可能的,因为你措辞它,但是你可以有一个 void 指针数组,指向不同大小(和长度)的不同数组。
-
使用你已有的结构,我看到的唯一问题是
total_nodes应该是total_task_lists。如果您足够认真地考虑,其他一切都是直截了当的。