diff options
Diffstat (limited to 'ft_memmove.c')
| -rw-r--r-- | ft_memmove.c | 65 |
1 files changed, 35 insertions, 30 deletions
diff --git a/ft_memmove.c b/ft_memmove.c index 54555cb..282ea52 100644 --- a/ft_memmove.c +++ b/ft_memmove.c @@ -1,38 +1,43 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memmove.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/10/07 10:03:21 by cacharle #+# #+# */ +/* Updated: 2019/10/07 11:17:29 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include <stdlib.h> #include <string.h> #define BUF_SIZE 4096 -void *ft_memmove(void *dest, const void *src, size_t n) +void *ft_memmove(void *dest, const void *src, size_t n) { - size_t i; - size_t j; - size_t k; - unsigned char tmp[BUF_SIZE]; - unsigned char *uc_dest; - unsigned char *uc_src; + size_t i; + size_t j; + size_t k; + unsigned char tmp[BUF_SIZE]; - if (dest == NULL && src == NULL) - return (NULL); - uc_dest = (unsigned char*) dest; - uc_src = (unsigned char*) src; - i = 0; - while (i < n) - { - j = 0; - while (j < BUF_SIZE && i < n) - { - tmp[j] = uc_src[i]; - j++; - i++; - } - k = 0; - while (k < j) - { - uc_dest[k] = tmp[k]; - k++; - } - i++; - } - return (dest); + if (dest == NULL && src == NULL) + return (NULL); + i = 0; + while (i < n) + { + j = 0; + while (j < BUF_SIZE && i < n) + { + tmp[j] = ((unsigned char*)src)[i]; + j++; + i++; + } + k = -1; + while (++k < j) + ((unsigned char*)dest)[k] = tmp[k]; + i++; + } + return (dest); } |
