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 }