summaryrefslogtreecommitdiff
path: root/graphs/piscine/my_memcpy
diff options
context:
space:
mode:
Diffstat (limited to 'graphs/piscine/my_memcpy')
-rw-r--r--graphs/piscine/my_memcpy/my_memcpy.c28
-rw-r--r--graphs/piscine/my_memcpy/my_memcpy.h8
2 files changed, 36 insertions, 0 deletions
diff --git a/graphs/piscine/my_memcpy/my_memcpy.c b/graphs/piscine/my_memcpy/my_memcpy.c
new file mode 100644
index 0000000..a6a48d4
--- /dev/null
+++ b/graphs/piscine/my_memcpy/my_memcpy.c
@@ -0,0 +1,28 @@
+#include "my_memcpy.h"
+
+void *my_memcpy(void *dest, const void *source, size_t num)
+{
+ char *d = dest;
+ const char *s = source;
+ if (dest > source) // reverse array
+ {
+ size_t l = num;
+ for (; l > 0; l--)
+ {
+ d[l - 1] = s[l - 1];
+ }
+ }
+ else
+ {
+ for (size_t i = 0; i < num; i++)
+ {
+ d[i] = s[i];
+ }
+ }
+ return dest;
+}
+
+int main(void)
+{
+ return 0;
+}
diff --git a/graphs/piscine/my_memcpy/my_memcpy.h b/graphs/piscine/my_memcpy/my_memcpy.h
new file mode 100644
index 0000000..bc1b926
--- /dev/null
+++ b/graphs/piscine/my_memcpy/my_memcpy.h
@@ -0,0 +1,8 @@
+#ifndef MY_MEMCPY_H
+#define MY_MEMCPY_H
+
+#include <stddef.h>
+
+void *my_memcpy(void *dest, const void *source, size_t num);
+
+#endif /* ! MY_MEMCPY_H */