diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-07-28 21:12:28 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-07-28 21:12:28 +0200 |
| commit | 5b653ccffdc33c8774697a93cad0b499b88dca71 (patch) | |
| tree | fef649e7cf39d62b7c0054ed17a00512e97d5a01 /ft_memmove.c | |
| parent | 4367fc2192172a3c867e4e94327f131f41e4880e (diff) | |
| download | libft-5b653ccffdc33c8774697a93cad0b499b88dca71.tar.gz libft-5b653ccffdc33c8774697a93cad0b499b88dca71.tar.bz2 libft-5b653ccffdc33c8774697a93cad0b499b88dca71.zip | |
std library function almost done, tested with libft-unit-tests
Diffstat (limited to 'ft_memmove.c')
| -rw-r--r-- | ft_memmove.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/ft_memmove.c b/ft_memmove.c new file mode 100644 index 0000000..54555cb --- /dev/null +++ b/ft_memmove.c @@ -0,0 +1,38 @@ +#include <stdlib.h> +#include <string.h> + +#define BUF_SIZE 4096 + +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; + + 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); +} |
