2013-07-15 108 views
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; 
    } 
} 

回答

3

您可以像使用任何其他變量一樣在指針上使用&。在你的情況下,它看起來像你可能想改變del到:

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

然後調用它像:

x = del(&someNode, 12); 
+0

和解引用一個額外*。 – 2013-07-15 17:43:37

+0

並且大部分使用所有其他常規指針操作。嵌套指針是一個非常有趣的事情:) –