概述
memmove
原型:void *memmove( void* dest, const void* src, size_tcount );
用法:#include <string.h>或#include <memory.h>
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域可以重叠,但复制后dest内容会被更改。函数返回指向dest的指针。
相关函数:memset、memcpy
代码:
void *memmove(void *dest, const void *src, size_t count)
{
void *ret = dest;
if(dest == NULL || src == NULL)
return;
//这里来判别dest和src是否是指向同一字符串中不同位置,
//如果是指向同一字符串,但是dest在src前面,则可以从前往后逐个赋值
//如果是指向同一字符串,但是dest在src后面,且dest>=src+count,那么仍然从前往后赋值
if(dest <= src || dest >= src+count)
{
while(count--)
*dest++ = *src++;
}
//如果是指向同一字符串,但是dest在src后面,且dest<=src+count,那么从后往前赋值
else
{
dest += count-1;
src += count-1;
while(count--)
*dest-- = *src--;
}
return ret;
}
memcpy代码:
void *memcpy(void *dest, const void *src, size_t count)
{
void *ret = dest;
if(dest == NULL || src == NULL)
return;
while(count--)
*dest++ = *src++;
return ret;
}
参照网址:
http://wenku.baidu.com/view/2d45fb1f650e52ea55189803
http://blog.csdn.net/jianzhibeihang/article/details/5087486
最后
以上就是美满雪碧为你收集整理的C语言--memmove和memcpy比较的全部内容,希望文章能够帮你解决C语言--memmove和memcpy比较所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复