article thumbnail image
Published 2022. 8. 2. 23:05

ft_lstnew

t_list *ft_lstnew(void *content);

새로운 요소를 할당하고 요소내의 변수 content는 매개변수로 받아온 content로 초기화하여 반환

요소 내의 변수 next는 NULL로 초기화

매개변수

content : 새로운 요소에 들어갈 content의 주소값

반환값

새로운 요소의 주소값 리턴

 

ft_lstadd_front

void ft_lstadd_front(t_list **lst, t_list *new);

요소 new를 리스트의 맨 앞에 추가

매개변수

lst : 리스트의 맨 앞에 위치한 요소

new : 리스트에 추가할 요소

반환값

없음

 

 

ft_lstsize

int ft_lstsize(t_list *lst);

리스트의 길이 반환

매개변수

lst : 리스트의 맨 앞에 위치한 요소

반환값

없음

 

 

 

ft_lstlast

t_list *ft_lstlast(t_list *lst);

리스트의 맨 마지막에 위치한 요소 반환

매개변수

lst : 리스트의 맨 앞에 위치한 요소

반환값

없음

 

 

ft_lstadd_back

void ft_lstadd_back(t_list **lst, t_list *new);

요소 new를 리스트의 맨 뒤에 추가

 

매개변수

lst : 리스트의 맨 앞에 위치한 요소의 포인터

new : 리스트의 맨 끝에 추가할 요소

반환값

없음

주의사항

*lst == null && new != NULL인 경우는 lst가 비어있다는 의미이므로 *lst = new;

그렇지 않으면 마지막까지 이동하여서 new를 추가

 

ft_lstdelone

void ft_lstdelone(t_list *lst, void (*del)(void *));

첫 번째 인자값으로 받은 요소의 content를 두 번째 인자로 받은 함수 포인터를 이용해 해제하고, 요소 자체의 메모리 해제

매개변수

lst : 삭제할 요소

del : 요소의 content 삭제에 사용되는 함수 포인터

반환값

없음

주의사항

lst 혹은 del이 널이면 바로 리턴

 

 

ft_lstclear

void ft_lstclear(t_list **lst, void (*del)(void *));

 함수 del과 free를 이용하여 인자값으로 받은 요소와 그 뒤에 따라오는 리스트의 모든 요소들을 삭제하고 해제

매개변수

lst : 삭제할 요소의 포인터

del : 요소의 content 삭제에 사용되는 함수 포인터

반환값

없음

주의사항

lst 혹은 del이 널이면 바로 리턴

 

 

ft_lstmap

t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *));

 리스트 lst의 요소들을 순회하며 각 요소의 content에 함수 f를 연속적으로 적용하여 결과물들을 content로 담은 새로운 리스트 생성

del 함수는 필요시 각 요소의 content를 사용하는 데 사용

매개변수

lst : 리스트의 맨 앞에 위치한 요소의 포인터

new : 리스트의 맨 끝에 추가할 요소

반환값

새로운 리스트의 시작 주소값 리턴

할당 실패 시 NULL

주의사항

f에 lst->content를 적용시키는데 실패하면 del 함수 실행, free 실행 후 NULL 리턴

f를 적용한 함수를 할당하는데 실패하면 지금까지 할당된 리스트에 대해서 del 함수 실행, free 실행 후 NULL 리턴

'42 Seoul' 카테고리의 다른 글

[42 Seoul] Born2beroot - 프로젝트 개요  (0) 2022.09.01
[42 Seoul] ft_printf  (0) 2022.08.19
[42 Seoul] Libft - Part 2  (0) 2022.08.02
[42 Seoul] Libft - Part 1  (0) 2022.08.02
[42 Seoul] Libft - 시작하기 전  (0) 2022.08.02
복사했습니다!