#include<iostream>
using namespace std;
void* mymemcpy(void *dst, const void *src, size_t size) {
if (dst == NULL || src == NULL)
return NULL;
char* psrc;
char* pdst;
psrc = (char*)src;
pdst = (char*)dst;
while (size--) {
*pdst++ = *psrc++;
}
return dst;
}
void* mymemmove(void *dst, const void *src, size_t size) {
if (dst == NULL || src == NULL)
return NULL;
char* psrc;
char* pdst;
if (src < dst && (char*)dst < ((char*)src+size)) {
psrc = (char*)src + size - 1;
pdst = (char*)dst + size - 1;
while (size--) {
*pdst-- = *psrc--;
}
}
else {
psrc = (char*)src;
pdst = (char*)dst;
while (size--) {
*pdst++ = *psrc++;
}
}
return dst;
}
int main() {
int a[] = {1,2,3,4,5};
int *b = a+2;
mymemmove(b, a, sizeof(a));
for (int i = 0; i < 5; i++) {
cout << b[i] << endl;
}
system("pause");
return 0;
}