结构内存分配和c中的malloc()

时间:2017-09-17 22:13:07

标签: c malloc

当我在链表中​​定义一个节点时,我遇到了这种混乱。 考虑,

struct node *current = head;

此处head是指向头节点的指针。另一种方式是,

struct node *current = (struct node*)malloc(Sizeof(struct node));
current = head;

两者的作用相同,那么它们之间的区别是什么? 如何在第一种情况下分配内存?

1 个答案:

答案 0 :(得分:3)

不同之处在于第二个版本调用malloc(sizeof(struct node))并丢失返回的指针;即它是内存泄漏。您可以通过以下方式获得相同的效果:

malloc(sizeof(struct node));
struct node *current = head;