如何制作链接:c语言中的链表和指针
大家好,我被困在一个问题中一个星期了,我来到这里。。 我有几个结构:如何制作链接:c语言中的链表和指针,c,list,pointers,structure,chained,C,List,Pointers,Structure,Chained,大家好,我被困在一个问题中一个星期了,我来到这里。。 我有几个结构: typedef struct s_task{ unsigned int id; char *name; }task typedef struct s_element_task{ task *t; struct s_element_task *next_element; } element_task; typedef element_task* task_list; typedef st
typedef struct s_task{
unsigned int id;
char *name;
}task
typedef struct s_element_task{
task *t;
struct s_element_task *next_element;
} element_task;
typedef element_task* task_list;
typedef struct s_agenda{
task_list *task_by_date;
} agenda;
我想在议程中添加一项任务,但我不知道如何在这些结构之间建立联系
我首先说:
task* my_task = malloc(sizeof(task));
但仅此而已
提前谢谢你
task* my_task = malloc(sizeof(task)); // data object
element_task* my_node = malloc(sizeof(element_task)); // node object
my_node.t = my_stask; // node now knows where data is
element_task* next_node = malloc(sizeof(element_task)); // next node object
my_node.next_element = next_node; // "link" to next node in linked list
作为旁注,我会确保初始化元素任务。下一个元素为NULL,这样您就可以知道该节点是否有子节点。然后创建s\U元素任务。将先前创建的任务添加到s_元素任务中。
s_agenda
的唯一成员task_list*task_by_date
应该是task_list task_by_date
,没有额外的指针,因为指针已经是task_list
的类型了吗?通常,我建议不要将指针隐藏在类型定义后面,因为它会不必要地模糊。但是,这是一个观点,可能不是每个人都同意。你在写我犯了一个错误任务日期没有指针谢谢我没有注意到在我的代码中我认为OP也特别想知道如何使用议程。但是请看我在OP的帖子上的评论,关于他是否希望在日期之前为任务添加双指针。非常感谢,但我不知道如何创建链接将此任务添加到任务列表中。写:“议程*a=malloc(sizeof(议程);”a->task\u by\u date=my\u节点是否正确?
task\u列表已经是一个指针,因此在议程结构的定义中,它不应该是另一个指针(它当前是指向指针的指针)