手写memcpy.memset

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;
}

猜你喜欢

转载自blog.csdn.net/qq_43507406/article/details/115281304