ft_lstclear

J_JEON·2022년 1월 18일
0

libft

목록 보기
41/44

💻 ft_lstclear

연결리스트의 데이터를 없에고 free해주는 함수

📃 ft_lstclear 원형

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

🔩 parameters

**lst : 없에줄 연결리스트
*del : 데이터를 삭제해줄 함수 포인터

📬 return

없음

🧨 주의사항

  • lst == NULL은 연결리스트 자체가 없는것이고 *lst == NULL은 연결리스트에 노드가 없이 비어있다는 뜻
  • 연결리스트를 모두 free해주고 난 뒤에 초기화해주지 않으면 없어진 저장공간을 가르키고있는 포인터가 쓰레기값때문에 오류를 발생시킬 수 있다(댕글링 포인터)

⌨ 코드


#include "libft.h"

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

	while (*lst != NULL)
	{
		save = (*lst)->next;
		ft_lstdelone(*lst, del);
		*lst = save;
	}
	*lst = 0;
}

profile
늅늅

0개의 댓글