ft_lstclear - chanhl22/libft GitHub Wiki
1 /* ************************************************************************** */
2 /* */
3 /* ::: :::::::: */
4 /* ft_lstclear.c :+: :+: :+: */
5 /* +:+ +:+ +:+ */
6 /* By: chanhlee <[email protected].> +#+ +:+ +#+ */
7 /* +#+#+#+#+#+ +#+ */
8 /* Created: 2021/01/29 15:54:08 by chanhlee #+# #+# */
9 /* Updated: 2021/01/30 10:57:26 by chanhlee ### ########.fr */
10 /* */
11 /* ************************************************************************** */
12
13 #include "libft.h"
14
15 void ft_lstclear(t_list **lst, void (*del)(void *))
16 {
17 t_list *tmp;
18
19 if (!del || !lst) // lst ๋ del ์ด ๋น์ด์์ ๊ฒฝ์ฐ, ํจ์๋ฅผ ์ข
๋ฃํจ.
20 return ;
21 while (*lst) //์ฃผ์ด์ง ์์๋ถํฐ ๋ฐ๋ณตํ๋ฉด์ ๋ชจ๋ ์์๋ฅผ ์ญ์ ํจ.
22 {
23 tmp = (*lst)->next // ์ญ์ ํ๊ธฐ ์ ์ ์๋ก์ด ๋ณ์์ lst์ ๋ค์ ๋
ธ๋๋ฅผ ๋ฃ์ด์ค๋ค.
24 ft_lstdelone(*lst, del); //์ญ์ ๋ฐ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ํด์
25 *lst = tmp; //์ฎ๊ฒจ์ง ๋ณ์๋ก ์ด๊ธฐํ
26 }
27 *lst = NULL; // free ํ์๋ ๋ฉ๋ชจ๋ฆฌ์๋ ์ด์ ๊ฐ์ด ๋จ์์๊ธฐ ๋๋ฌธ์ 0์ผ๋ก ์ด๊ธฐํ๋ฅผ ํด์ฃผ์ด์ผ ํจ.
28 }