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 に答える