memcpy的简单实现

Posted evanspudding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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++;
	//	}
	//}
}

以上是关于memcpy的简单实现的主要内容,如果未能解决你的问题,请参考以下文章

实现memcpy()函数及过程总结

手写strcpy和memcpy代码实现

实现memcpy

Linux内核memcpy的不同实现

Linux内核memcpy的不同实现

用 memcpy “构造”一个​​可简单复制的对象