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; 
} 

C语言之memmove函数

【FROM MSDN && 百科】 原型:  void *memmove( void* dest, const void* src, size_tcount ); #include...
  • hgj125073
  • hgj125073
  • 2013年01月05日 16:24
  • 10527

c语言模拟实现memmove

为什么写这篇博客,因为我很多次都被它考住了!!!!!!!!!! 首先 memmove 是一个内存操作函数,不是字符串操作函数,它可以处理多种类型的数据。 它的原型是:void *memmo...
  • LLZK_
  • LLZK_
  • 2016年06月02日 23:48
  • 823

memmove 和 memcpy的区别以及处理内存重叠问题

memmove 和 memcpy的区别以及处理内存重叠问题
  • Li_Ning_
  • Li_Ning_
  • 2016年05月15日 19:30
  • 10617

关于memcpy和memmove两函数的区别

关于memcpy和memmove两个c标准库函数,其功能都是将一块内存区域中的指定大小内容复制到目标内存中,在翻阅c标准库实现的源代码我们发现他们是有区别的。首先看memcpy的实现: void * ...
  • caowei840701
  • caowei840701
  • 2013年01月10日 23:36
  • 1017

仰视源码,实现memmove

在我之前博客中写过一个内存复制函数memcopy(http://blog.csdn.net/z702143700/article/details/46628149),是根据源码修改而来,但是这个函数包...
  • z702143700
  • z702143700
  • 2015年07月28日 16:45
  • 2535

迅雷面试题:memcpy和memmove的区别

其实很早就知道两个函数其中有一个在面临内存覆盖时行为有点特别, 但是工作中很少用到此场景, 也就没有深究. 现在居然面试遇到了, 那就把研究清楚吧. memcpy 简单粗暴, 不考虑内存重叠问题. ...
  • zdl1016
  • zdl1016
  • 2013年03月16日 12:56
  • 2235

常见内存拷贝函数:memcpy()、memmove()、strcpy()的实现及区别

转载:http://blog.163.com/xychenbaihu@yeah/blog/static/132229655201322332592/ memcpy和memmove实现不同测试: ...
  • u011980566
  • u011980566
  • 2017年05月05日 16:20
  • 220

memmove和memcpy函数的区别及实现

一、memmove()和memcpy()函数的strcpy()函数的区别;(1)使用的类型不同,strcpy()函数只对字符串进行操作;memmove()和memcpy()函数对所有类型都适用,为内存...
  • gogogo_sky
  • gogogo_sky
  • 2017年05月21日 01:37
  • 348

C语言memcpy和memmove函数的理解和区别

简介:NRF24L01是NORDIC公司生产的一款无线通信芯片,采用FSK 调制,集成NORDIC自家的Enhanced Short Burst协议。可以实现点对点或是1对6的无线通信。无线通信速度最...
  • windows260
  • windows260
  • 2016年04月14日 16:30
  • 2268

strcpy实现机制,数组越界-->memcpy,memmove

先来看一个常见的C++面试题目: void test() {  charstring[10],str1[10];  int i;  for(i=0; i...
  • qcontriver
  • qcontriver
  • 2015年03月27日 17:35
  • 1077
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:memmove
举报原因:
原因补充:

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