split rendu plus lisible avec function free a part

This commit is contained in:
Hugo LAMY
2019-12-04 16:27:47 +01:00
parent dc0a5d69d9
commit be0adfee35

View File

@@ -6,7 +6,7 @@
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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;
}