블로그 이미지
송시혁

calendar

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Notice

Tag

Recent Post

Recent Comment

Recent Trackback

Archive

예제 10-4


#include <stdio.h>
#include <stdlib.h>

typedef struct node
{
  char data;
  struct node *next;
}NODE;
  
int main()
{
  NODE *list, *temp;
  list = (NODE *) malloc (sizeof(NODE));
  list->data='a';
  temp = list;
  temp->next = (NODE *) malloc (sizeof(NODE));
  temp= temp->next;
  temp ->data ='b';
  temp -> next = (NODE *) malloc (sizeof(NODE));
  temp = temp->next;
  temp->data='c';
  temp->next = NULL;
  
  temp = list;
  while(list != 0)
  {
    printf("%5c\n", list->data);
    temp = temp->next;
    free(list);
    list = temp;
  }
  return 0;
}
일단 list가 동적 할당을 받고 임의 구조체메모리를 받는다.


1. temp = list; 에서 temp 또한 malloc을 가르킨다.

2. temp= temp-> next; 에서   temp-> next는두번째 malloc을 받고 가르킨다.
    그리고 이것을 temp에 대입한다. data에 'b'를 삽입하고나서 
    temp -> next 다시 동적할당을 받는다.

3. temp= temp-> next; 에서 temp는 세 번째 malloc을 가르키게 된다.

이과정을 아래그림으로 표현 하였다.



posted by 송시혁