有没有办法指向指针变量而不是它的地址空间,以便可以将其更改为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;
}
}
答案 0 :(得分:3)
您可以在指针上使用&
,就像在任何其他变量上一样。在您的情况下,您可能希望将del
更改为:
Node *del(Node **N, int v)
然后称之为:
x = del(&someNode, 12);