vec_clear.c
1 /* ************************************************************************** */ 2 /* */ 3 /* ::: :::::::: */ 4 /* vec_clear.c :+: :+: :+: */ 5 /* +:+ +:+ +:+ */ 6 /* By: ll-hotel <ll-hotel@student.42lyon.fr> +#+ +:+ +#+ */ 7 /* +#+#+#+#+#+ +#+ */ 8 /* Created: 2024/04/01 13:36:05 by ll-hotel #+# #+# */ 9 /* Updated: 2024/10/20 16:09:41 by ll-hotel ### ########.fr */ 10 /* */ 11 /* ************************************************************************** */ 12 13 #include "ft_vec.h" 14 #include "ft_basics.h" 15 #include <stdlib.h> 16 17 void vec_clear(t_vec *vec, void (*del)(void *)) 18 { 19 unsigned long i; 20 21 if (vec->array) 22 { 23 if (del) 24 { 25 i = -1; 26 while (++i < vec->size) 27 (*del)(vec_at(vec, i)); 28 } 29 ft_memset(vec->array, 0, vec->size * vec->elem_size); 30 free(vec->array); 31 vec->array = (void *)0; 32 } 33 vec->size = 0; 34 vec->allocated_size = 0; 35 vec->elem_size = 0; 36 }