diff --git a/ft_printf b/ft_printf index 635eb1f..a73325a 100755 Binary files a/ft_printf and b/ft_printf differ diff --git a/ft_printf.c b/ft_printf.c index a39a1bf..ff0d60c 100644 --- a/ft_printf.c +++ b/ft_printf.c @@ -91,7 +91,11 @@ int ft_printf(char *string, ...) if (!(print = ft_flag_transform(s, print, type))) return (-1); length += ft_put_word(print); + free(print); } + free(s); + free(type); } + free(s); return (length); } diff --git a/main.c b/main.c index ac9193a..b699640 100644 --- a/main.c +++ b/main.c @@ -68,9 +68,13 @@ char *ft_compare(int fd1, int fd2, int *error) ret2 = get_next_line(fd2, &line); if (ft_strcmp(tmp, line) != 0) { + free(line); + free(tmp); (*error)++; return ("\033[91mHO HO..\033[0m"); } + free(line); + free(tmp); } if (ret1 != ret2) { diff --git a/srcs/aside.c b/srcs/aside.c index 43ff005..de8394f 100644 --- a/srcs/aside.c +++ b/srcs/aside.c @@ -74,27 +74,27 @@ int ft_put_word(char *s) int ft_expand_star(int nbr, char **string) { char *s; - char *strnbr; + char *n; int i; int j; + int k; - strnbr = ft_itoa(nbr); - i = ft_strlen(strnbr) + ft_strlen(*string) - 1; - if (!(s = (char *)malloc(sizeof(char) * (i + 1)))) + n = ft_itoa(nbr); + if (!(s = ft_memalloc(sizeof(char) * (ft_strlen(n) + ft_strlen(*string))))) return (0); - s[i] = '\0'; - i = 0; + i = -1; j = 0; - while ((*string)[i] != '\0') + k = 0; + while ((*string)[++i] != '\0') { s[j] = (*string)[i]; if (s[j] == '*') - while (*strnbr != '\0') - s[j++] = *(strnbr++); + while (n[k] != '\0') + s[j++] = n[k++]; else j++; - i++; } + free(n); free(*string); *string = s; return (1); diff --git a/srcs/ft_convert.c b/srcs/ft_convert.c index 78f405e..ee2c697 100644 --- a/srcs/ft_convert.c +++ b/srcs/ft_convert.c @@ -46,15 +46,15 @@ char *conv_u(char c, unsigned long int i) { char *s; - s = ft_utoa(i); if (c == 's') return (strdup((char *)i)); + s = ft_utoa(i); if (c == 'u') return (s); if (c == 'x' || c == 'p') - return (ft_convertbase(s, "0123456789", "0123456789abcdef")); + return (ft_convertbase_free(s, "0123456789", "0123456789abcdef")); if (c == 'X') - return (ft_convertbase(s, "0123456789", "0123456789ABCDEF")); + return (ft_convertbase_free(s, "0123456789", "0123456789ABCDEF")); return (NULL); }