自定义函数实现memcpy和memmove
#include <string.h>
#include <assert.h>
//memcpy
void* my_memcpy(void* dest, const void* src, size_t num)
{
//断言
assert(dest && src);
//返回原始dest指针
void* ret = dest;
//以字节为单位进行拷贝,直到拷贝完全
while (num--)
*((char*)dest)++ = *((char*)src)++;
return ret;
}
//memmove
void* my_memmove(void* dest, void* src, size_t num)
{
assert(dest && src);
void* ret = dest;
if (((char*)dest-(char*)src)>0)
while (num--)
*((char*)dest + num) = *((char*)src + num);
else
while (num--)
*((char*)dest)++ = *((char*)src)++;
return ret;
}