Nineclown / self_study

0 stars 0 forks source link

[C Language] 포인터 #44

Open Nineclown opened 5 years ago

Nineclown commented 5 years ago

Pointer

포인터 변수는 주소값을 저장하는 변수입니다.

typedef struct _node {
    int data;
    _node *next;
    _node *prev;
} Node;
Node list[100];
Node temp_node;

What?

list[3]의 prev 멤버 변수는 다른 노드 구조체의 주소를 저장하는 변수입니다. 만약 prev의 값을 초기화 하지 않고 *list[3].prev = temp_node 처럼 저장하려고 하면 에러가 발생합니다.

Why?

prev에는 쓰레기 값 혹은 NULL이 저장되어 있습니다. 그렇기 때문에 쓰레기 값 혹은 NULL을 주소로 하는 곳의 값을 확인(*)한다는 것은 메모리에 잘못 접근하는 행위이고 따라서 에러가 발생하게 됩니다.