diff --git a/cv4/list_ops.c b/cv4/list_ops.c index b4a9a48..d7e7a74 100644 --- a/cv4/list_ops.c +++ b/cv4/list_ops.c @@ -28,14 +28,13 @@ list_t *append_list(list_t *list1, list_t *list2) list_t *filter_list(list_t *list, bool (*predicate)(list_element_t)) { list_element_t filter[list->length]; - int counter = 0; + size_t filter_length = 0; for(size_t i = 0; i < list->length;i++){ if(predicate(list->elements[i])){ - filter[counter] = list->elements[i]; - counter++; + filter[filter_length++] = list->elements[i]; } } - list_t *result = malloc(list->length); + list_t *result = new_list(filter_length,filter); if (result == NULL) { return NULL; }