memcpy
void* m_memcpy(void* dest, const void* src, size_t size)
{
char* p = (char*)dest;
char* q = (char*)src;
assert(dest != NULL && src != NULL);
assert(p >= q + size || q >= p + size);//防止内存存在重复的区域
while (size-- > 0)
{
*q++ = *q++;
}
return dest;
}
memset
void* m_memset(void* str, int c, size_t n)
{
assert(str == NULL);
char* p = (char*)str;
char ch =(char)c;
while (n--) {
*p++ = ch;
}
return str;
}