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함수 안에서 일어난 일들까지 적용이 되더라구요
지역변수에서의 변경 내용은 함수 종료와동시에 사라지는거 아니었나요..
head는 main함수의 지역변수잖아 프로그램이 종료되야 없어지지
scope공부 다시하세여
포인터