精华内容
下载资源
问答
  • memcpy

    2016-05-10 10:32:00
    void *memcpy(void *dest, const void *src, size_t n); memcpy功能 编辑 从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中 memcpy所需头文件 编辑 C语言:#...

    函数原型编辑

    void *memcpy(void *dest, const void *src, size_t n);

    memcpy功能

    编辑
    从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中

    memcpy所需头文件

    编辑
    C语言:#include<string.h>
    C++:#include<cstring>

    memcpy返回值

    编辑
    函数返回指向dest的指针。

    memcpy说明

    编辑
    1.source和destin所指的内存区域可能重叠,但是如果source和destin所指的内存区域重叠,那么这个函数并不能够确保source所在重叠区域在拷贝之前不被覆盖。而使用memmove可以用来处理重叠区域。函数返回指向destin的 指针.
    2.如果目标数组destin本身已有数据,执行memcpy()后,将覆盖原有数据(最多覆盖n)。如果要追加数据,则每次执行memcpy后,要将目标数组地址增加到你要追加数据的地址。
    注意:source和destin都不一定是数组,任意的可读写的空间均可。
    程序例example1
    作用:将s中的字符串复制到字符数组d中。
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //memcpy.c
    #include <stdio.h>
    #include <string.h>
    int  main()
    {
         char * s= "GoldenGlobalView" ;
         chard[20];
         clrscr();
         memcpy (d,s,( strlen (s)+1));
         printf ( "%s" ,d);
         getchar ();
         return  0;
    }
    输出结果:Golden Global View
    example2
    作用:将s中第13个字符开始的4个连续字符复制到d中。(从0开始)
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include<string.h>
    int  main(
    {
         char * s= "GoldenGlobalView" ;
         char  d[20];
         memcpy (d,s+12,4); //从第13个字符(V)开始复制,连续复制4个字符(View)
         d[4]= '\0' ; //memcpy(d,s+12*sizeof(char),4*sizeof(char));也可
         printf ( "%s" ,d);
        getchar ();
        return  0;
    }
    输出结果: View
    example3
    作用:复制后覆盖原有部分数据
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include<stdio.h>
    #include<string.h>
    intmain( void )
    {
         char  src[]= "******************************" ;
         char  dest[]= "abcdefghijlkmnopqrstuvwxyz0123as6" ;
         printf ( "destination before memcpy:%s\n" ,dest);
         memcpy (dest,src, strlen (src));
         printf ( "destination after memcpy:%s\n" ,dest);
         return  0;
    }
    输出结果:
    destination before memcpy:abcdefghijlkmnopqrstuvwxyz0123as6
    destination after memcpy: ******************************as6

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,056
精华内容 25,622
热门标签
关键字:

memcpy返回