2013-07-15 4 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

다른 변수와 마찬가지로 포인터에 &을 사용할 수 있습니다. 이 같은 전화를 한 후

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

그리고 :

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

그리고 역 참조를 추가로 * 당신이 del을 변경할 수 있습니다처럼 귀하의 경우에는, 그것은 보인다. –

+0

그리고 대부분의 다른 모든 일반 포인터 작업을 사용하십시오. 중첩 된 포인터는 매우 재미 있습니다. :) –

관련 문제