码迷,mamicode.com
首页 > 其他好文 > 详细

内存拷贝函数的实现

时间:2017-11-25 16:21:47      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:bcd   函数   ==   void   重叠   oid   main   clu   sse   

#include <stdio.h>  
#include<string.h>  
#include <assert.h>  
void *my_memcpy(void *dst,void const * src,int len) { void *p = dst; char *psrc = (char *)src; char *pdst = (char *)dst; assert(NULL != dst && NULL !=src );//断言的使用 if(len == 0) { return p; } if(pdst+len <= psrc || pdst >= psrc+len)//从前向后拷贝(如果没有重叠区域) { while(len--) { *pdst = *psrc; pdst++; psrc++; } } else //从后向前拷贝(如果有重叠区域) { psrc += len-1;//注意对于字符串数组是从0开始标号,要加len-1,不是len pdst += len-1; while(len--) { *pdst= *psrc; pdst--; psrc--; } } return p; } int main() { char a[] = "abcdef"; my_memcpy(a+1,a,6); printf("%s\n",a); return 0; }

 

内存拷贝函数的实现

标签:bcd   函数   ==   void   重叠   oid   main   clu   sse   

原文地址:http://www.cnblogs.com/veis/p/7895331.html

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