From 748013584ebb9924f1300e733e31ef8a8ee80a0a Mon Sep 17 00:00:00 2001 From: Jerome Benoit Date: Fri, 3 Mar 2017 20:01:34 +0100 Subject: [PATCH] TP 9 exo2: Fix the link_delete function return value or code cleanup. Signed-off-by: Jerome Benoit --- TP_9/exo2/clist.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/TP_9/exo2/clist.c b/TP_9/exo2/clist.c index a089750..edc2964 100644 --- a/TP_9/exo2/clist.c +++ b/TP_9/exo2/clist.c @@ -55,12 +55,13 @@ link_t* list_insert(link_t* head, unsigned index, int value) { link_t* list_delete(link_t* head, unsigned index) { link_t* head_prev = NULL; link_t* head_next = NULL; + link_t* head_ret = NULL; if (index == 0) { head_next = head->next; free(head); head = head_next; - return head; + head_ret = head; } else { link_t* head_first = head; for (unsigned i = 0; i < index-1; i++) { @@ -72,7 +73,12 @@ link_t* list_delete(link_t* head, unsigned index) { free(head); head = head_prev; head->next = head_next; - return head_first; + head_ret = head_first; + } + if (head_ret != NULL) { + return head_ret; + } else { + return NULL; } } @@ -110,12 +116,12 @@ int list_get(link_t* head, unsigned index) { } } -void list_clear(link_t* link) { +void list_clear(link_t* head) { link_t* next_link = NULL; - while (link != NULL) { - next_link = link->next; - free(link); - link = next_link; + while (head != NULL) { + next_link = head->next; + free(head); + head = next_link; } } -- 2.34.1