linked list 설명
배열(Array) & 연결리스트(Linked List)
해당 페이지에 설명해두었음.
ft_lstclear를 구현하기 위해 libft.h파일에
typedef struct s_list { void *content; struct s_list *next; } t_list;이 구조체를 추가해야한다.
void ft_lstclear(t_list **lst, void (*del)(void *))
#include "libft.h"
void ft_lstclear(t_list **lst, void (*del)(void *))
{
t_list *cur;
if (lst == NULL || del == NULL)
return ;
while (*lst)
{
cur = (*lst)->next;
ft_lstdelone(*lst, del);
*lst = cur;
}
*lst = 0;
}
void del(void *content)
{
free(content);
}
int main(void)
{
t_list *list = NULL;
char *str1 = malloc(20);
char *str2 = malloc(20);
char *str3 = malloc(20);
if (!str1 || !str2 || !str3)
return (1);
sprintf(str1, "node1");
sprintf(str2, "node2");
sprintf(str3, "node3");
ft_lstadd_back(&list, ft_lstnew(str1));
ft_lstadd_back(&list, ft_lstnew(str2));
ft_lstadd_back(&list, ft_lstnew(str3));
ft_lstclear(&list, del);
if (list == NULL)
printf("List cleared successfully.\n");
return (0);
}