C语言实现memcpy
#include <stdio.h>
#include <assert.h>
void *manger(void* str, void* str1, size_t count)
{
assert(str == NULL || str1 == NULL);
char* ch1;
const char* ch2;
if (str < str1 || str > (str1 + count))
{
ch1 = (char*)str;
ch2 = (char*)str1;
while (count -- )
{
*ch1++ = *ch2++;
}
}
else /* overlap */
{
ch1 = (char*)(str + count - 1);
ch2 = (char*)(str1 + count - 1);
while (count -- ){
*ch1 -- = *ch2 --;
}
}
return str;
}