关于memcpy函数

**memcpy指的是C和C++使用的内存拷贝函数,函数原型为void
*memcpy(void destin, void source, unsigned n);函数的功能是从源内存地址的起始位置开始拷贝若干个字节到目标内存地址中,即从源source中拷贝n个字节到目标destin中。

memcpy函数语法

函数原型:
void *memcpy(void *destin, void
*source, unsigned n);

参数:
destin–
指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。
source–
指向要复制的数据源,类型强制转换为
void* 指针。
n-- 要被复制的字节数。

返回值:

该函数返回一个指向目标存储区destin的指针。

功能:

从源source所指的内存地址的起始位置开始拷贝n个字节到目标destin所指的内存地址的起始位置中。

所需头文件:

C语言:#include<string.h>

C++:#include

应用说明:

1.source和destin所指的内存区域可能重叠,但是如果source和destin所指的内存区域重叠,那么这个函数并不能够确保source所在重叠区域在拷贝之前不被覆盖。而使用memmove可以用来处理重叠区域。函数返回指向destin的指针。

2.如果目标数组destin本身已有数据,执行memcpy()后,将覆盖原有数据(最多覆盖n)。如果要追加数据,则每次执行memcpy后,要将目标数组地址增加到你要追加数据的地址。

注意:source和destin都不一定是数组,任意的可读写的空间均可。

区别:

strcpy和memcpy主要有以下3方面的区别。

1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。

2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。

3、用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy。

举例:


将 s 中第11 个字符开始的 6个连续字符复制到 d 中:

覆盖原有部分数据:

C语言中关于memcpy函数相关推荐

  1. C语言中比较大小的函数模板,C语言中实现模板函数小结 : 不敢流泪

    --by boluor 2009/5/20 如果要写个函数支持多种数据类型,首先想到的就是C++的模板了,但是有时候只能用C语言,比如在linux内核开发中,为了减少代码量,或者是某面试官的要求- 考 ...

  2. C语言中内联函数的作用 inline

    C语言中内联函数的作用 inline C语言中内联函数到底有什么作用? 试想一下,每当我们在假设就在主函数中调用另外一个函数的时候,那么这个函数就要入栈或者出栈,比如说下面的一个例子: 点击(此处)折 ...

  3. C语言中文件定位函数总结

    C语言中文件定位函数主要是:fseek, ftell, fsetpos, fgetpos. 先来讲前两个函数,这是最基本的定位函数: fseek函数:能把文件指针移动到文件任何位置,其原型是:int ...

  4. c语言函数编写格式,在c语言中如何实现函数模板?

    如果要写个函数支持多种数据类型,首先想到的就是C++的模板了,但是有时候只能用C语言,比如在linux内核开发中,为了减少代码量,或者是某面试官的要求- 考虑了一阵子后,就想到了qsort上.qsor ...

  5. C语言中的回调函数(Callback Function)

    C语言中的回调函数(Callback Function) 1 定义和使用场合 回调函数是指 使用者自己定义一个函数,实现这个函数的程序内容,然后把这个函数(入口地址)作为参数传入别人(或系统)的函数中 ...

  6. python文件定位函数_C语言中文件定位函数总结

    C语言中文件定位函数主要是:fseek, ftell, fsetpos, fgetpos. 先来讲前两个函数,这是最基本的定位函数: fseek函数:能把文件指针移动到文件任何位置,其原型是:int ...

  7. 怎样设置一个函数C语言,C语言中怎样编写一个函数 如何在C语言中定义一个函数?...

    如何在C语言中定义一个函数?小编很想在你面前流泪最后却还是选择装作打个哈欠 为什么小编怎么定义函数都不正确呢? 总是说小编 表达语法错误在main函数中 小编们可以在头文件与main函数之间定义,并编 ...

  8. C语言中利用Swap函数交换变量a,b

    C语言中利用Swap函数交换变量a,b 常见错误写法 error1 void Sawp_error1(int a,int b) {int tmp;tmp=a;a=b;b=tmp; } int main ...

  9. c语言读取文件字节数,怎么在C语言中利用fstat函数获取文件的大小

    怎么在C语言中利用fstat函数获取文件的大小 发布时间:2021-01-22 17:03:17 来源:亿速云 阅读:110 作者:Leah 怎么在C语言中利用fstat函数获取文件的大小?针对这个问 ...

最新文章

  1. 服务器不显示磁盘柜,磁盘柜与服务器的关系
  2. java去掉字符串中前后空格函数_JAVA中去掉字符串空格各种方法详解
  3. 陶哲轩实分析 命题 8.2.6 证明
  4. HDFS机架感知概念及配置实现
  5. HDU 6124 Euler theorem
  6. mysql mvcc 读写阻塞_mysql面试题MVCC原理事务隔离级别_aiailingfei的博客-CSDN博客
  7. 虚拟化系列-Citrix XenServer 6.1 XenMotion与HA
  8. HP常用函数总结(一):
  9. 三星 s4(i9502) android4.4rom 官方,三星i9502官方rom固件系统刷机包_三星i9502原版线刷包下载...
  10. Java飞机大战项目
  11. 进行计算机系统管理调度监控和维护的软件是,MES车间调度监控系统软件
  12. 软件测试用例篇总结概述
  13. CQF笔记M1L2二叉树模型
  14. 微信营销很简单,做好这些你就是大师
  15. FIN断开-TCP segment of a reassembled PDU-原因分析
  16. Google浏览器插件推荐
  17. 顺序栈和链栈实现汉洛塔
  18. linux内核源码分析之proc文件系统(三)
  19. Windows 10 安装使用TensorFlow-GPU
  20. 2021年二级c语言软件下载,2021计算机二级宝典

热门文章

  1. USB2514集线器调试总结
  2. [凯立德]2014年秋季版3225JOK全分辨率全卡名重力转向
  3. 【2019暑假集训】07.05比赛总结
  4. 互联网行业领域细分 | 你可以准确的说出你混哪个圈的吗?
  5. 03 ,二元函数,二元函数偏导数,方向导数,梯度 :
  6. leaflet 切换图层样式问题
  7. 【Unity3D】二、制作滚球游戏学习Unity3D(上)
  8. 您的Spring框架注释指南,请注意查收
  9. 算法_数学问题_Question5_出售金鱼(java实现)
  10. Pytorch实现图像风格迁移(一)