diff --git a/srcs/part2/ft_split.c b/srcs/part2/ft_split.c index e6858dd..fdbb1e9 100644 --- a/srcs/part2/ft_split.c +++ b/srcs/part2/ft_split.c @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/12/04 15:51:26 by hulamy #+# #+# */ -/* Updated: 2019/12/04 15:51:28 by hulamy ### ########.fr */ +/* Updated: 2019/12/04 16:26:37 by hulamy ### ########.fr */ /* */ /* ************************************************************************** */ @@ -88,6 +88,13 @@ static int count(char const *s, char c) return (words); } +void *ft_free(char **array) +{ + while (array) + free(array++); + return (NULL); +} + char **ft_split(char const *s, char c) { char **array; @@ -97,18 +104,15 @@ char **ft_split(char const *s, char c) w = 0; if (!s || !c || !(array = malloc(sizeof(char *) * (count(s, c) + 1)))) return (NULL); - while (*s && !(len = 0)) + while (*s) { + len = 0; if (*s != c) { while (s[len] && s[len] != c) len++; if (!(array[w++] = ft_substr(s, 0, len))) - { - while (array) - free(array++); - return (NULL); - } + return (ft_free(array)); } s += len ? len : 1; }