现在的位置: 首页 > 综合 > 正文

memcpy的实现

2019年08月30日 ⁄ 综合 ⁄ 共 399字 ⁄ 字号 评论关闭

有时会用memcpy去复制数组,但是memcpy是怎么实现的呢?一直没想过,终酿成一个遗憾。

那句话说得好:不求甚解是成为一个优秀程序员的大忌讳。

亡羊补牢吧。。。

要实现这个函数:void memcpy(void* pDst, void* pSrc, int nSize),

要对pDst指向的内存进行写操作,但是不知道pDst的具体类型,似乎不好处理。

其实,char占1个字节,是最小单位,所以,可以将空指针强转成char*,再进行赋值。

这句话也说得好:就是这么简单。

void memcpy(void* pDst, void* pSrc, int nSize)
{
	if (NULL == pDst || NULL == pSrc)
	{
		goto Exit0;
	}

	while (nSize--)
	{
		*(char*)pDst = *(char*)pSrc;
		pDst = (char*)pDst + 1;
		pSrc = (char*)pSrc + 1;
	}

Exit0:
	return;
}

【上篇】
【下篇】

抱歉!评论已关闭.