原文地址:https://blog.csdn.net/qq_21792169/article/details/50561570

头文件:#include <string.h>

memcpy() 用来复制内存,其原型为:
    void * memcpy ( void * dest, const void * src, size_t num );

memcpy() 会复制 src 所指的内存内容的前 num 个字节到 dest 所指的内存地址上。

memcpy() 并不关心被复制的数据类型,只是逐字节地进行复制,这给函数的使用带来了很大的灵活性,可以面向任何数据类型进行复制。

需要注意的是:

dest 指针要分配足够的空间,也即大于等于 num 字节的空间。如果没有分配空间,会出现断错误。
    dest 和 src 所指的内存空间不能重叠(如果发生了重叠,使用 memmove() 会更加安全)。

与 strcpy() 不同的是,memcpy() 会完整的复制 num 个字节,不会因为遇到“\0”而结束。

【返回值】返回指向 dest 的指针。注意返回的指针类型是 void,使用时一般要进行强制类型转换。

代码示例:

#include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define N (10)
    int main()
    {
    char* p1 = "abcde";
    char* p2 = (char*)malloc(sizeof(char) * N);
    char* p3 = (char*)memcpy(p2, p1, N);
    printf("p2 = %s\np3 = %s\n", p2, p3);
    free(p2);
    p2 = NULL;
    p3 = NULL;
    system("pause");
    return 0;
    }

运行结果:
p2 = abcde
p3 = abcde

代码说明:
1) 代码首先定义p1,p2,p3三个指针,但略有不同,p1指向一个字符串字面值,给p2分配了10个字节的内存空间。

2) 指针p3通过函数memcpy直接指向了指针p2所指向的内存,也就是说指针p2、p3指向了同一块内存。然后打印p2,p3指向的内存值,结果是相同的。

3) 最后按照好的习惯释放p2,并把p3也置为NULL是为了防止再次访问p3指向的内存,导致野指针的发生。
---------------------
作者:HeroKern
来源:CSDN
原文:https://blog.csdn.net/qq_21792169/article/details/50561570
版权声明:本文为博主原创文章,转载请附上博文链接!

C memcpy()用法相关推荐

  1. memcpy用法错误

    1.定义一个std::vector < double > colData 型数据 通过inData复制一块大小为inDataSize的内存给colData 刚开始: memcpy(& ...

  2. memcpy()与memset()

    一.memcpy 1.memcpy用法: void *memcpy(void *dest, const void *src, size_t n); 头文件:C语言需要包含头文件string.h:C++ ...

  3. C语言:memcpy()---数据拷贝

    C语言 基础开发----目录 1.memcpy() 简介 1.1 函数原型 void *memcpy(void *destin, void *source, unsigned n); 1.2 参数 d ...

  4. c语言memcopy_C语言中memcpy 函数的用法详解

    C语言中memcpy 函数的用法详解 memcpy(内存拷贝函数) c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址 ...

  5. C++之memcpy的用法

    memcpy的用法 memcpy是 c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中. 1.函数原型 v ...

  6. memcpy函数详解 看这一篇就够了-C语言(函数讲解、 使用用法举例、作用)

    memcpy()函数用于:复制内存块 函数介绍 函数声明:void * memcpy ( void * destination, const void * source, size_t num ); ...

  7. memcpy函数用法

    各位读者朋友们,由于更新blog不易,如果觉得这篇blog对你有用的话,麻烦关注,点赞,收藏一下哈,十分感谢. 1.简介 memcpy 函数用于把资源内存(src所指向的内存区域) 拷贝到目标内存(d ...

  8. c语言memcpy是什么,C语言memcpy函数的用法

    介绍 memcpy是memory copy的缩写,意为内存复制,在写C语言程序的时候,我们常常会用到它.它的函原型如下: void *memcpy(void *dest, const void *sr ...

  9. memcpy, strcpy, strncpy的区别和用法

    注意事项 strcpy 是依据 "\0" 作为结束判断的,如果 s2 的空间不够,则会引起 buffer overflow. memcpy用来在内存中复制数据,由于字符串是以&qu ...

最新文章

  1. CVPR 2019审稿满分论文:中国博士提出融合CV与NLP的视觉语言导航新方法
  2. 谈谈服务雪崩、降级与熔断
  3. linux 内核 fork,《Linux内核分析》之分析fork函数对应的系统调用处理过程
  4. AI人工智能开发的路径有三条,最成功的是机器学习技术:强化学习
  5. Java 基础 之 continue和 break
  6. 紧跟时代步伐,让我们拥抱MVC 3
  7. Activiti源码 之工厂模式
  8. SQL登录 18470 18452 错误
  9. 【AI视野·今日Sound 声学论文速览 第三期】Wed, 20 Apr 2022
  10. 每天一个linux 命令 find命令
  11. php file 扩展,php5.4.31安装php_fileinfo扩展和php_intl扩展
  12. SQL Server中的尾日志备份和还原
  13. H5中 video 使用border-radius失效解决方法
  14. css中的expression
  15. 2022最新版VMware虚拟机及CentOS-7安装教程
  16. linux设备驱动程序之时钟管理
  17. CSS-div圆角被内部元素覆盖问题
  18. 怎样卸载干净Oracle
  19. 制作ftl文件通过FreeMarke生成PDF文件(含图片处理)
  20. Linux 目录权限

热门文章

  1. 庄羽提议郭敬明成立反剽窃基金,AI:反剽窃,不行;剽窃,行!
  2. Python3中_和__的用途和区别
  3. web服务器部署证书
  4. Aurora8B10B IP使用 -04- IP例程应用实例
  5. 计算机网络 - linux - 配置静态ip地址(NAT模式)
  6. 简述Thread的interrupt()、interrupted()及isInterrupted()的区别
  7. mysql 表聚合_Mysql分表之后的聚合统计
  8. BERT-BiLSTM-CRF模型代码
  9. Lattice ddr3教程全攻略之仿真篇
  10. CTFSHOW 套娃shell