有人可以向我解释以下代码的作用。
set_element *p = (set_el*)malloc(sizeof(set_el));
p->value = elem;
p->next = NULL;
return p;
elem
参数中传递给方法的元素在哪里,我也有这个:
typedef struct set_el
{
int value;
struct set_el* next;
} set_el;
这看起来像一个链表的实现。
struct set_el
在链表中定义一个节点,其中
value
将int
数据保存在节点中。next
是指向列表中下一个节点的指针(链接)。为要添加到链表中的新节点分配内存:
set_el *p = malloc( sizeof *p ); // cleaned up according to @JohnBode's comment
// If malloc fails, log and return
if(p == NULL)
{
// log and take necessary action.
return NULL;
}
变量被复制到节点中elem
的数据部分(即):value
p->value = elem;
节点p
没有下一个节点,即没有传出链接:
p->next = NULL;
指向新创建节点的指针返回给调用者:
return p;
这段代码
set_el
结构set_el
为传递的元素设置新的结构值NULL
一般来说,它只是将新set_el
元素添加到单向链接列表中。