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比较内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复