From 753b086e4fd03cbab43206e03e3a0e57cbec80c9 Mon Sep 17 00:00:00 2001 From: jaketothepast Date: Thu, 9 Jan 2020 09:46:41 -0500 Subject: [PATCH] Created a "free_list" method to free up allocated memory. --- linkedlist.c | 14 +++++++++++++- linkedlist.h | 1 + main.c | 2 ++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/linkedlist.c b/linkedlist.c index f98429b..a1f9936 100644 --- a/linkedlist.c +++ b/linkedlist.c @@ -48,8 +48,20 @@ void linkedlist_print(LinkedList *head) { tmp = tmp->next; } } -void free_list(LinkedList *head) { +void free_list(LinkedList **head) { + LinkedList *ptr = *head; + LinkedList *prev = NULL; + + if (ptr == NULL) + return; + + while (ptr != NULL) { + prev = ptr; + ptr = ptr->next; + free(prev->data); + free(prev); + } } void free_node(LinkedList *node) { free(node->data); diff --git a/linkedlist.h b/linkedlist.h index ef3a4eb..3a6f0cc 100644 --- a/linkedlist.h +++ b/linkedlist.h @@ -18,4 +18,5 @@ typedef struct linkedlist { LinkedList *linkedlist_new(); void linkedlist_add(LinkedList **head, char *data); void linkedlist_print(LinkedList *head); +void free_list(LinkedList **head); #endif //HOSTBLOCKER_LINKEDLIST_H diff --git a/main.c b/main.c index a5f4c0a..c62f98a 100644 --- a/main.c +++ b/main.c @@ -192,6 +192,8 @@ int main(int argc, char **argv) // daemonize(); } } + + free_list(&hosts); } /**