我有一个包含指向另一个结构Node的指针的结构。此指针是指向结构链接列表的前指针。所以,我正在构建我的链接列表,每次插入节点时,我都会创建单独的结构并链接到其他LL节点。
问题:我是否需要为LL中的每个节点分配内存?使用malloc的意思如
*pointer_to_struct = (structAlias *)malloc(sizeof(structAlias));
然后初始化其成员。
或者我只是创建结构并给它的成员赋值(成员是void *和structAlias * next)而没有为每个结构分配内存?
答案 0 :(得分:3)
在一般情况下,是的,您必须为列表中的每个节点分配内存,并且您可能希望使用malloc
或calloc
。如果你只声明一个struct
局部变量,那么当函数返回时,该局部变量将失效,但你可能希望该节点比函数调用更长。