拷贝内存中的内容
void* my_memcpy(void* dest, const void* src, size_t num)
{
assert(dest && src);
void* ret = dest;
while (num--)
{
*((char*)dest)++ = *((char*)src)++;
}
return ret;
}
void * memmove ( void * destination, const void * source, size_t num );
与memcpy不同的是,它的目标内存块可以重叠。
void* my_memmove(void* dest, const void* src, size_t num)
{
assert(dest && src);
if ((char*)src < (char*)dest)
{
for (size_t i = 0; i < num; i++)
{
*((char*)dest + num - 1 - i) = *((char*)src + num - 1 - i);
}
}
else if ((char*)src > (char*)dest)
{
for (size_t i = 0; i < num; i++)
{
*((char*)dest + i) = *((char*)src + i);
}
}
return dest;
}



