linked list 설명
배열(Array) & 연결리스트(Linked List)
해당 페이지에 설명해두었음.
ft_lstdelone를 구현하기 위해 libft.h파일에
typedef struct s_list { void *content; struct s_list *next; } t_list;이 구조체를 추가해야한다.
void ft_lstdelone(t_list *lst, void (*del)(void*));
#include "libft.h"
void ft_lstdelone(t_list *lst, void (*del)(void *))
{
if (lst == NULL || del == NULL)
return ;
del(lst->content);
free(lst);
}
void del(void *content)
{
free(content);
}
int main(void)
{
t_list *node;
char *str = malloc(20);
if (!str)
return (1);
// 문자열을 복사해서 저장
sprintf(str, "Hello, World!");
node = ft_lstnew((void *)str);
printf("Before delete: %s\n", (char *)node->content);
ft_lstdelone(node, del); // content도 free, 노드도 free
// node 사용 불가! (free 되었기 때문)
return (0);
}