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 |