void insert(list *head, char d){
        list *p=head;

        p = (list*)malloc(sizeof(list));        // 새로운 공간 확보

        p->data = d;                                                

        p->next = head->next;
        head->next = p;
                        

}


오랜만에 하니까 도통 모르겠네요 ㅜ

위에 보시는게 삽입부분인데요.. 저렇게 하면 메모리상에 어떻게 기억되어있는건가요?

프로그램 다 끝나고 free해줘야 된다고 배웠는데..  

어떻게 해줘야되는건가요 free() 괄호 안에 변수이름 적어야되는데 뭘 적어야 되는지 잘모르겟네요 ㅜ