概述
memcpy()只是memmove()的一个子集
memcpy()在执行内存重叠的情况下时,就会发生错误,而memmove()不会
void *memmove(void *dest, const void *src, size_t count)
{
assert((dest!=0)&&(src!=0));
unsigned char *pdest =(char * )dest;
unsigned char *psrc = (char * )src;
int i=0;
if ((pdest < psrc) || (pdest > psrc + count)) ///正向拷贝
{
for (i= 0; i < count; i++)
{
*pdest ++ = *psrc ++;
}
}
else /*反向拷贝*/
{
psrc += count;
pdest += count;
for (i= 0; i < count; i++)
{
psrc --;
pdest --;
*pdest = *psrc;
}
}
return dest;
}
最后
以上就是彪壮鞋垫为你收集整理的memmove()的全部内容,希望文章能够帮你解决memmove()所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复