struct node {

char *data;

struct node *next;

};

typedef struct node Node;


void add_after(Node *prev, char* item) {

Node *tmp = (Node *)malloc(sizeof(Node));

tmp->data = item;

tmp->next = prev->next;

prev->next = tmp;


}


int main() {

Node *head = NULL;

head = (Node *)malloc(sizeof(Node));

head->data = "Tuesday";

head->next = NULL;


Node *p = head;

add_after(head, "doon");

printf("%s\n", p->data);

printf("%s\n", (p->next)->data);

}


연결 리스트 공부중입니다.


main함수 안에서 add_after함수 호출했을때 거기 들어가서 작동하는 head는 지역변수 아닌가요?


그런데 그 다음라인에서 출력해보면


Tuesday

doon


이렇게 add_after함수 안에서 일어난 일들까지 적용이 되더라구요


지역변수에서의 변경 내용은 함수 종료와동시에 사라지는거 아니었나요..