c-指针赋值为NULL:如果使用malloc,则会有所不同



以下是两个不同的版本:

Node *pointer = (Node*)malloc(sizeof(Node));
pointer = NULL;

Node *pointer = NULL;

我之所以这么问,是因为在我正在编写的代码中,第一个版本随处可见,但我认为它与第二个版本相同。有时,它不是被分配给NULL,而是被分配给另一个变量,但原理是一样的,不是吗?

它们非常不同。在第一种情况下,您在堆上创建一个Node,然后直接"忘记"它,从而导致内存泄漏。第二种情况没有创建Node,因此没有泄漏。

如果你真的在代码中到处都是第一个版本,我会很担心的!

相关内容

  • 没有找到相关文章

最新更新