memcpy的简单实现

void* my_memcpy(void* dst, void* src, int n)
{
	if (dst == nullptr || src == nullptr || n <= 0)
	{
		return nullptr;
	}
	char* pdst = (char*)dst;
	char* psrc = (char*)src;

	while (n--)
	{
		*pdst++ = *psrc++;
	}
	return dst;

	//如果考虑内存覆盖  
	//这种情况写增加const void* src
	//if (pdst > psrc&& pdst < psrc + n)    
	//{	         
	//	pdst = pdst + n - 1;		
	//	psrc = psrc + n - 1;		 
	//	while (n--)		
	//		* pdst-- = *psrc--;	  
	//}
	//else
	//{
	//	while (n--)
	//	{
	//		*pdst++ = *psrc++;
	//	}
	//}
}

猜你喜欢

转载自www.cnblogs.com/EvansPudding/p/12764927.html
今日推荐