split rendu plus lisible avec function free a part
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user