repositories
/
TD_C.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TP 9 exo2: Fix the link_delete function return value or code cleanup.
[TD_C.git]
/
TP_9
/
exo2
/
clist.c
diff --git
a/TP_9/exo2/clist.c
b/TP_9/exo2/clist.c
index a089750ff01ae755ccd5e6f8c21f7b091a245107..edc296473e54c3910d0d4ea5fe3c3058aaf2913a 100644
(file)
--- 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* 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;
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++) {
} 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;
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;
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;
}
}
}
}