void makenode(struct Node *header, int n);                

struct Node{
 int value;
 struct Node *link;
}*header ;

 

void main(){
 int i, n;
 struct Node *header = (struct Node*)malloc(sizeof(struct Node));
 header->link = NULL;
 printf("몇 개의 값을 넣으시겠습니까?:");
 scanf("%d", &i);

 for (n = 0; n < i; n++)
  makenode(header, n);

}

 

void makenode(struct Node *header, int n){               //n은 노드 생성갯수
 struct Node *find, *product;
 int i;
 find = (struct Node*)malloc(sizeof(struct Node));
 product = (struct Node*)malloc(sizeof(struct Node));
 product->link = NULL;
 find->link = header;


 for (i = 0; i < n; i++)
            find->link = find->link->link;           ★★★


 find->link->link = product;                         ★★★
 printf("%d번째 값을 입력하시오:", n + 1);
 scanf("%d", &product->value);
}

 

 

저기서  별표 친 부분이 이해가 안가..

예를 들어서 노드를 1개 만든다(n=1)고 했을때

find->link->link 가 가리키는건 header의 link를 말하는건데. 그 값은 NULL이잖아

NULL값을  find->link에 넣으면 결국엔 find가 가리키는건 아무것도 없지 않아?

 

 

이 코드는 내가 짠게 아니고 공부하려고 블로그에서 가져왔는데 설명이 제대로 안되있어서 도무지 이해가 안가..

형들 도와줘 ㅠㅠ