42 Libft 32

1. 30 ft_lstmap

t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)); 설명 lst로 받은 링크드리스트 각 content에 f함수적용한 새로운 리스트를 만들고, 새 노드를 동적할당 하다가 실패 할 경우 새로 만들어진 링크드리스트를 싹다 없애라. 인자 lst - 요소에 대한 포인터의 주소. void *(*f)(void *) - 반복하는 데 사용되는 함수의 주소 void (*del)(void *) - 삭제하는 데 사용되는 함수의 주소 리턴값 새로 생성된 링크드리스트

42 Libft 2020.10.21

1.26 ft_lstdelone

설명매개 변수로 요소를 취하고 함수를 사용하여 요소의 내용 기억 'del'은 매개 변수로 주어지고 요소를 해제합니다. 'next'의 메모리를 해제해서는 안됩니다. 인자 t_list *lst 해제 할 요소입니다. void (*del)(void *)) -> 매개변수가 void*이고 반환형이 void인 함수만 가리킬수 있다 삭제하는 데 사용되는 함수의 주소 (함수 포인터) The address of the function used to delete the content. 리턴값x

42 Libft 2020.10.17

#1.23 ft_lstnew

t_list *ft_lstnew(void *content) 설명구조체 s_list 즉 t_list를 동적할당하고 인자값으로 들어오는 내용으로 content 변수를 초기화한다. 그리고 다음 구조체 s_list를 가리킬수 있는 next 변수를 null로 초기화한다. 인자void *content 보이드 포인터는 역참조 할 수 없다.그런데 역참조도 할 수 없는 void 포인터는 왜 사용하냐?? void 포인터는 되는 게 별로 없어 보이지만 실제로 C 언어에서 다양한 형태로 사용된다 예를 들자면 함수에서 다양한 자료형을 받아들일 때, 함수의 반환 포인터를 다양한 자료형으로 된 포인터에 저장할 때, 자료형을 숨기고 싶을 때 사용한다. 리턴값생성된 구조체

42 Libft 2020.10.16