ft_realloc.c
1 /* ************************************************************************** */ 2 /* */ 3 /* ::: :::::::: */ 4 /* ft_realloc.c :+: :+: :+: */ 5 /* +:+ +:+ +:+ */ 6 /* By: ll-hotel <ll-hotel@student.42.fr> +#+ +:+ +#+ */ 7 /* +#+#+#+#+#+ +#+ */ 8 /* Created: 2024/02/29 20:52:27 by ll-hotel #+# #+# */ 9 /* Updated: 2024/08/20 17:52:38 by ll-hotel ### ########.fr */ 10 /* */ 11 /* ************************************************************************** */ 12 13 #include "ft_basics.h" 14 #include <stdlib.h> 15 16 void *ft_realloc(void *p, unsigned long old_size, unsigned long n) 17 { 18 void *new; 19 20 if (n == 0) 21 return (NULL); 22 new = malloc(n); 23 if (!new) 24 return (NULL); 25 if (!p) 26 return (new); 27 if (n < old_size) 28 ft_memmove(new, p, n); 29 else 30 (void)ft_memmove(new, p, old_size); 31 free(p); 32 return (new); 33 }