当我在链表中定义一个节点时,我遇到了这种混乱。 考虑,
struct node *current = head;
此处head
是指向头节点的指针。另一种方式是,
struct node *current = (struct node*)malloc(Sizeof(struct node));
current = head;
两者的作用相同,那么它们之间的区别是什么? 如何在第一种情况下分配内存?
答案 0 :(得分:3)
不同之处在于第二个版本调用malloc(sizeof(struct node))
并丢失返回的指针;即它是内存泄漏。您可以通过以下方式获得相同的效果:
malloc(sizeof(struct node));
struct node *current = head;