以下是两个不同的版本:
Node *pointer = (Node*)malloc(sizeof(Node));
pointer = NULL;
Node *pointer = NULL;
我问的原因是因为我在这个代码中到处都看到第一个版本我正在研究,但我认为它与第二个版本相同。有时而不是分配给NULL它被分配给另一个变量,但原理是相同的,没有?
答案 0 :(得分:7)
他们非常不同。在第一种情况下,您在堆上创建Node
,然后立即“忘记”它,导致内存泄漏。第二种情况不会创建Node
,因此没有泄漏。
如果您在代码中到处都看到第一个版本,我会非常担心!