【问题标题】:Pointer assignment to NULL: a difference if malloc is used?指向 NULL 的指针分配:如果使用 malloc 有区别吗?
【发布时间】:2014-04-30 02:03:56
【问题描述】:

这是两个不同的版本:

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

.

Node *pointer = NULL;

我问的原因是因为我在我正在处理的这段代码中到处都能看到第一个版本,但我认为它与第二个版本相同。有时不是赋值给NULL,而是赋值给另一个变量,但原理是一样的,不是吗?

【问题讨论】:

  • 不要将 malloc 的结果投射到 C 上

标签: c pointers memory malloc


【解决方案1】:

它们非常不同。在第一种情况下,您在堆上创建一个Node,然后立即“忘记”它,从而导致内存泄漏。第二种情况不会创建Node,因此不会泄漏。

如果您真的在代码中到处都看到第一个版本,我会非常担心!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-13
    • 2022-01-24
    • 2016-02-14
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    相关资源
    最近更新 更多