2

有没有办法指向指针变量而不是它的地址空间,以便可以将其更改为 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;
    }
}
4

1 回答 1

3

您可以&像在任何其他变量上一样使用指针。在您的情况下,您可能希望更改del为:

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

然后这样称呼它:

x = del(&someNode, 12);
于 2013-07-15T17:43:08.213 回答