memcpy函数详解

memcpy函数详解

ID:38056160

大小:41.50 KB

页数:4页

时间:2019-05-24

memcpy函数详解_第1页
memcpy函数详解_第2页
memcpy函数详解_第3页
memcpy函数详解_第4页
资源描述:

《memcpy函数详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、memcpy函数详解1)memcpy函数用法解析结构如下:void*memcpy(void*dest,constvoid*src,size_tcount);作用:在dest处拷贝src处的字节,并以count来计算需要拷贝的字节数量,进行内存的拷贝。参数:dest:新的存贮区的开始部位src:需要拷贝的开始部位count:需要拷贝的字节数备注:dest,src,它们都是从各自的地址处进行写入,如果是p而不是&p,那么奖会取得p的值(地址),在该值的地址处进行读出或写入。例:int*intPoint=newint(3333);int*intPoint1;

2、memcpy(&intPoint1,&intPoint,4);//在intPoint1的地址处写入intPoint地址处的值,也就是intPoint指针值。cout<<*intPoint1<

3、emcpy作了修改,弥补其不足。   memcpy函数的特点是:       1.使用memcpy函数前,实参dest必须初始化,否则可能会出错,原因见2。       2. 函数原理是将void*src 强制转换为char*s,然后只负责拷贝n个字节到dest里,不负责在最后加上''。   下面的代码其实是实现了memmove的功能,然后根据memcpy的参数为void*,给其分别尝试传入int*和char*,以此来掌握int*是如何转化为char*,及强制转化后是什么结果,涉及到大端和小端...等等。1.#include   

4、 2.#include  3.void * mymemcpy(void *dest,void *src, int n) 4.{ 5.    char *d; 6.    char *s; 7.    int i=0; 8. 9.    s=(char *)src; 10.    d=(char *)dest; 11.    if(dest==NULL 

5、

6、 src==NULL 

7、

8、 n<0) 12.        return 0; 13.    if(d>=s && d<=s+n-1) 14.    { 15.        i=

9、n-1; 16.        printf("%d",i); 17.        while(i>=0) 18.        { 19.            d[i]=s[i]; 20.            i--; 21.        } 22.    } 23.    else 24.    { 25.        while(i

10、f("i=%d %x",i,d[i]);            30.            i++; 31.        } 32.        d[i]=''; 33.    } 34.    dest=(void *)d; 35.    return dest; 1.} 2. 3.int main(char **argv,int argc)   4.{   5.    //情况1 6.    char src[100]="helloworldhui";   7.    //如果是特殊情况mymemcpy(src+2,src,7);,则

11、不可写成char *src="helloworld"; 因为文字常量区内容不可被改变 8.    //char dest[100]="";        //必须初始化 9.    char *dest; 10.    dest=(char *)mymemcpy(src+2,src,7); 11.    printf("%s",dest);//*/ 12. 13.    //情况2 14./*  int src=123456789 ;     //对应十六进制:75BCD15 15.    int dest=0;              16. 

12、   //dest必须初始化,不然,如果只拷贝3个字节时,dest的第四个字节未被赋值,这样输

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。