码迷,mamicode.com
首页 > 编程语言 > 详细

【C语言】 实现memmove

时间:2015-11-21 07:16:26      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:c   memmove   

内存重叠拷贝函数

#include<stdio.h>
#include<assert.h>

void my_memmove(void *p1,void const *p2,size_t count)
{	
	char *dest = (char *)p1;
	char *src = (char *)p2;
	assert(p1);
	assert(p2);

	if((dest > src) && (dest < src +count))
	{
		while(count--)
		{
			*(dest + count) = *(src + count); 
		}
	}
	else
	{
		while(count--)
		{
			*dest++ = *src++;
		}
	return p1;
	}
}

int main()
{
	int arr1[10]={1,2,3,4,5,6,7,8,9,10};
	int i = 0;
	my_memmove(arr1+4,arr1+2,16);
	for(i=0;i<10;i++)
	{
		printf("%d ",arr1[i]);
	}
	printf("\n");
	return 0;
}


本文出自 “Vs吕小布” 博客,谢绝转载!

【C语言】 实现memmove

标签:c   memmove   

原文地址:http://survive.blog.51cto.com/10728490/1715231

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!