我是否需要使用struct为C语言的Linked List中的每个节点分配内存?

时间:2014-09-27 19:32:19

标签: c

我有一个包含指向另一个结构Node的指针的结构。此指针是指向结构链接列表的前指针。所以,我正在构建我的链接列表,每次插入节点时,我都会创建单独的结构并链接到其他LL节点。

问题:我是否需要为LL中的每个节点分配内存?使用malloc的意思如 *pointer_to_struct = (structAlias *)malloc(sizeof(structAlias)); 然后初始化其成员。

或者我只是创建结构并给它的成员赋值(成员是void *和structAlias * next)而没有为每个结构分配内存?

1 个答案:

答案 0 :(得分:3)

在一般情况下,是的,您必须为列表中的每个节点分配内存,并且您可能希望使用malloccalloc。如果你只声明一个struct局部变量,那么当函数返回时,该局部变量将失效,但你可能希望该节点比函数调用更长。