memmove

原创 2012年03月31日 15:16:18
#include <stdio.h> 
/*
void* memmove(void *dest, const void* src, size_t n) 
{ 
    if(dest == NULL || src == NULL) 
        return NULL; 
    char* p =(char*) dest; 
    char* q =(char*) src; 
    while(n--) 
    { 
        *p++ = *q++; 
    } 
    return dest; 
} 
//*/

void* memmove(void* pDest, void* pSrc, unsigned int count)
{
	char* dest , *src;
	unsigned int i;
	dest =(char*)pDest;
	src =(char*)pSrc;
	if(((char*)pDest < (char*)pSrc)|| ((char*)pSrc + count < (char*)pDest))
	{  //没有重叠的情形(正向拷贝)
		for(i = 0; i < count; i++)
			*dest++ = *src++;
	}
	else
	{  //有重叠的情形(逆向拷贝)
        dest += count - 1;
        src  += count - 1;
        for(i = 0; i < count; i++)
			*dest-- = *src--;
	}
	return pDest;
}



int main() 
{ 
    //char* p = "hello,world"; 
    //char dest[6] = {0,1,1,1,1,0}; 
	char p[]="hello,world";
	char *dest=p+2;
    char *q = (char*)memmove(dest,p,5); 
    printf("%s\n",dest); 
    printf("%s\n",q); 
    return 0; 
} 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

memmove和memcpy

转载地址: http://www.cnblogs.com/foxinhongyan/articles/1267624.html笔试的时候遇到好几回,转过来牢记下 memmove和memcpy ...

memmove

相关函数: bcopy(), memccpy(), memcpy(), strcpy(), strncpy() 表头文件: #include 定义函数: void *memmove(void ...

memcpy和memmove的区别

memcpy和memmove的区别       memcpy()和memmove()都是C语言中的库函数,在头文件string.h中,其原型分别...

C语言memmove函数

/* memmove的函数原型: void *memmove(void *dst,const void *src,size_t count); 头文件:#include 作用是:实现内存的重叠拷贝...

memmove

相关函数: bcopy(), memccpy(), memcpy(), strcpy(), strncpy() 表头文件: #include 定义函数: void *memmove(void ...

memmove、memcpy的实现

http://blog.csdn.net/noworries/article/details/8875955   我们平时经常用memcpy以及strcpy等等库函数,都知道用法,但是知道他们的区别吗...

memmove 和 memcpy的区别

memcpy和memmove()都是C语言中的库函数,在头文件string.h中,作用是拷贝一定长度的内存的内容,原型分别如下: void *memcpy(void *dst, const void ...

使用memmove对数组中的指定内容进行删除操作

#include #include #include using namespace std; int main() { int i,len,cnt; unsigned short t; ...

库函数memcpy()与memmove()实现

根据MSDN文档,当源区域与目标区域存在重叠时,memcpy()函数报错,而memmove()函数可以处理重叠情况!  1/*   2 * 函数名: memcpy   3 * 功 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)