c - 如何指向指针变量

标签 c pointers

有没有办法指向指针变量而不是它的地址空间,以便可以将其更改为NULL。像这样的东西。对于这个可怜的问题,我深表歉意,我想不出更好的方式来表达我想要做的事情。 谢谢。

typedef struct Node
{
    int val;
    struct Node *r;
    struct Node *l;
} Node;

Node* del(Node *N, int v)
{
    Node *n = N;
    Node **p = NULL;

    while (n != NULL)
    {
        if (something)
        {
            p = n.r;
            n = n->r;
        }
        else {
            p = n.l;
            n = n->l;
        }

        free(n);
        *p = NULL;
    }
}

最佳答案

您可以在指针上使用 &,就像在任何其他变量上一样。就您而言,您可能希望将 del 更改为:

Node *del(Node **N, int v)

然后这样调用它:

x = del(&someNode, 12);

关于c - 如何指向指针变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17660433/

相关文章:

c++ - 指针和递归

c - 带有 UEXT 连接器和 PIC MCU 的 Olimex Zigbee 模块。为什么使用 PIC MCU 进行编程?

c - 如何使用 Ansi C 打开新的控制台窗口?

c++ - 为什么不能用另一个指向 const char 的指针来初始化一个指针?

c - 另一个结构中的结构的图形解释,但指向它的指针,

c - 关于输出的解释

c++ - 在递归函数中创建 std::list of value 而不是 std::list of pointers

c++ - one.cpp 和 two.cpp 都#include two.h

c - 这段代码是循环链表吗

c - 如何在 C 中模拟套接字