`

[转载]C语言memcpy函数

阅读更多

 

 原型:extern void *memcpy(void *dest, void *src, unsigned int count);

 

 用法:#include <string.h>

 

 功能:由src所指内存区域复制count个字节到dest所指内存区域。

 

 说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。

 

 举例:

 

        // memcpy.c

 

        #include <syslib.h>
        #include <string.h>

        main()
        {
          char *s="Golden Global View";
          char d[20];
        
          clrscr();
        
          memcpy(d,s,strlen(s));
          d[strlen(s)]=0;
          printf("%s",d);

          getchar();
          return 0;
        }

相关函数:memccpy,memmove,strcpy

 

关于strcpy()与memcpy()比较:

 

在使用这两个函数中,平时大多都使用strcpy()而忽略了 memcpy(),

 

它们都是从缓冲区拷贝内容。

 

byte a[4];// 每一个字节赋数值类型

a[0]=0;

a[1]=1;

a[2]=0;

a[3]=1;

 

byte c1[4];

memcpy(c1, a, sizeof(byte)*4);

byte c2[4];

strcpy((char*)(byte*)c2, (char*)(byte*)a);

 

只有memcpy()处理的是正确的,所以拿来它们的函数原型比较一下:

 

char *strcpy( char *strDest, const char *strSource);

 

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

 

可以看出 strcpy() 是处理的字符串(遇零结束),

 

memcpy() 是处理一个缓冲区(void*类型的),

 

而我们的内容中有数字0,

 

而数字0又是字符串的结尾字符 ' \0' 的数字表现,

 

字符串拷贝是遇到0就结束,

 

所以,如果要拷贝的缓冲区如果是非字符串那么就尽量用memcpy(),

 

这样可以避免出错的可能。

 

分享到:
评论

相关推荐

    C语言中memcpy 函数的用法详解

    c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。 void* memcpy(void* destination, const void* source, size_t num); void*...

    memcpy函数c语言实现

    memcpy函数c语言实现代码

    C语言系统函数大全,包含所有系统函数

    这个压缩包“C语言系统函数大全”显然包含了所有C语言的系统函数,这对于学习和参考来说非常宝贵。 C语言的系统函数主要分为几个大类: 1. **输入/输出函数**:如`printf`和`scanf`,它们分别用于格式化输出和输入...

    【C语言/知识点整理/期末复习】C语言内存函数(附思维导图)

    memcpy函数是C语言中最基本的内存复制函数,用于将一个内存块中的数据复制到另一个内存块中。其函数原型为: void * memcpy ( void * destination, const void * source, size_t num ); 其中,destination是目标...

    c语言常用函数手册,集合了几百个常用函数

    3. **内存操作函数**:C语言允许直接操作内存,`&lt;string.h&gt;`和`&lt;stdlib.h&gt;`中的函数如`memcpy`、`memmove`、`memset`等,用于高效地复制、移动和填充内存区域,是实现低级编程技巧的重要工具。 4. **文件操作函数**...

    200个C语言常用函数实现代码大全.rar

    "200个C语言常用函数实现代码大全"是一个珍贵的资源,它涵盖了C语言中许多常用的函数实现,对于初学者和经验丰富的程序员来说都是极具价值的学习材料。这个压缩包可能包含了从数据类型操作、字符串处理、内存管理到...

    C语言函数详解大全

    "C语言函数详解大全"是一个针对C语言函数的全面参考资料,它包含了C语言开发过程中可能用到的所有函数,每个函数都有详尽的功能解释、使用方法以及示例代码,是学习和查阅C语言函数的宝贵资源。 C语言中的函数是...

    C语言函数集(比较全)

    C语言函数集是编程者日常开发中的重要工具,它提供了丰富的功能,帮助程序员高效地完成各种任务。这个压缩包文件"C函数集.chm"显然是一部关于C语言函数的参考手册,方便用户快速查找和理解各个函数的使用方法。CHM...

    C语言函数库函数详细介绍手册

    C语言常用函数库详细的使用说明 字符串函数 bcmp bcopy bzero memccpy memchr memcmp memcpy memicmp memmove memset movmem setmem stpcpy strcat strchr strcmp strcmpi strcpy strcspn ...

    c语言函数表

    "C语言函数表"是一个集合了C语言中众多核心函数的资源,对于初学者和进阶者来说都是宝贵的参考资料。在这个文档中,我们能够找到C语言中的主要函数及其功能,以及可能的原始实现代码,这对于理解和学习C语言的函数...

    C语言函数大全语法着色版.rar

    13. **标准库函数**:如数学函数(sin、cos、exp等)、字符串处理函数(strcpy、strcat、strcmp等)、内存操作函数(memset、memcpy等)等。 此资源的语法着色版意味着每个函数的示例代码都会以不同的颜色突出显示...

    c语言常用函数手册

    《C语言常用函数手册》是一本为C语言学习者和开发者量身打造的重要参考资料,它详尽地介绍了C语言中的核心函数,旨在帮助读者更好地理解和掌握C语言的实用技巧。通过对这些函数的深入理解,开发者可以更加高效地编写...

    C语言函数大全供参考

    "C语言函数大全"很可能是一个包含C语言标准库中所有函数的参考资料,为开发者提供了全面的函数用法和示例。 C语言的标准库提供了大量预定义的函数,涵盖了输入/输出操作、字符串处理、数学运算、内存管理等多个领域...

    C语言函数大全(语法着色版)

    《C语言函数大全(语法着色版)》是一份针对C语言编程的参考资料,它集成了C语言的各种函数,提供了语法高亮的展示方式,旨在帮助程序员更清晰、直观地理解和掌握C语言中的函数用法。这篇文档不仅包含了标准库函数,也...

    C语言函数大全语法

    "C语言函数大全语法"这个文档集合了C语言中的各种内置函数,是学习和查询C语言函数的重要资源。 函数在C语言中的主要作用包括模块化编程、代码重用以及实现特定功能。下面我们将详细探讨一些关键的C语言函数类型和...

    linux C语言函数大全

    Linux系统中的C语言是开发系统级程序和底层应用的重要工具,其函数库和系统调用提供了丰富的功能。本文将深入探讨C语言在Linux环境下的主要函数和系统调用,帮助开发者更好地理解和运用这些功能。 一、C语言基本...

    c语言函数大全 所有函数

    "C语言函数大全"涵盖了从基本操作到复杂计算的各种函数,它们构成了C语言的核心功能。 1. **基本输入输出函数**: - `printf()`:用于向标准输出设备(通常是屏幕)打印格式化的数据。 - `scanf()`:从标准输入...

    《c语言常用函数手册》

    3. 数组操作函数:如`memset`和`memcpy`用于填充或复制内存区域,`strcpy`和`strcat`用于字符串的复制和连接。 4. 字符串处理函数:如`strcmp`用于比较两个字符串,`strstr`用于在一个字符串中查找子字符串,`...

    C语言函数大全.txt

    8. 数组和指针相关函数:如`sizeof()`返回变量或数据类型的大小,`memcpy()`和`memmove()`复制内存块,`memset()`设置内存区域的值。 9. 错误处理函数:`errno`全局变量保存错误代码,`perror()`打印错误信息。 ...

Global site tag (gtag.js) - Google Analytics