1.memcpy()函数的实现

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

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

void* memcpy(void* dest, const void* source, size_t count)
{char *ret = (char *)dest;char *dest_t = ret;//中间变量char *source_t = (char *)source;//中间变量while (count--){*dest_t++ = *source_t++;}  return ret;
}  

有上述代码可知:由于采用中间变量,memcpy执行完之后目的地址和源地址都不变,并且返回目的地址

2.strcpy()函数的实现

原型声明:extern char *strcpy(char* dest, const char *src);

头文件:#include <string.h>

功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

char *strcpy(char *strDestination,const char *strSource)
{assert(strDestination!=NULL && strSource!=NULL);char *strD=strDestination;while ((*strD++=*strSource++)!='\0');return strDestination;
}

3.memcpy函数的用法与strcpy的区别

不同点:

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

2.复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy

则是根据其第3个参数决定复制的长度。

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

如果目标数组destin本身已有数据,执行memcpy()后,将覆盖原有数据(最多覆盖n)。如果要追加数据,则每

次执行memcpy后,要将目标数组地址增加到你要追加数据的地址。

转载于:https://www.cnblogs.com/hellopearl/p/3806094.html

memcpy()函数相关推荐

  1. 最保险的函数间数组作为参数值传递与返回方法,用memcpy函数

    举例代码如下: void mycvCalcHist(IplImage *img,double out_hist[256]) {int i=0, j=0; double temp1=0;int temp ...

  2. 0.11内核rd_load@ramdisk.c中memcpy函数好像有bug

    0.11内核rd_load@ramdisk.c中memcpy函数好像有bug,如: #define memcpy(dst,src,n) \     __asm__("cld;rep;movs ...

  3. c语言内存拷贝 memcpy()函数

    需包含头文件:C 标准库 - <string.h> 文章目录 描述 声明 参数 返回值 实例1 实例2 实例3:覆盖原有部分数据 描述 C 库函数 void *memcpy(void *s ...

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

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

  5. memcpy函数_[PART][BUG][MSVCRT][C][CCF NOI1097] 关于memcpy的坑

    [Incompleted] CCF NOI1097 试题,本人的源码: Ubuntu Pastebin​paste.ubuntu.com Ubuntu Pastebin Ubuntu Pastebin ...

  6. c语言中memcpy函数_带有示例的C中的memcpy()函数

    c语言中memcpy函数 memcpy()函数 (memcpy() function) memcpy() is a library function, which is declared in the ...

  7. C语言 memcpy函数(增加dst 从第一字节拷贝判断)的内部简单实现方式

    刚学习C语言编程的时候,感觉C内部函数深不可测,通过代码很难实现.后来经常慢慢的学习过程,理解了部分C函数的实现方法,下面简单说下memcpy函数的内部实现方式之一. 简单概括内存拷贝的含义:字节对齐 ...

  8. 让你提前认识软件开发(8):memset()与memcpy()函数

    第1部分 重新认识C语言 memset()与memcpy()函数 软件项目中的代码,少则数千行,多则上万行,但并非无规律可循.阅读了那么多代码之后,我发现有两个函数出现的频率很高,那就是memset( ...

  9. memcpy函数(多积累进大厂)

    作者:旧梦拾遗186 专栏:C语言编程----小比特成长日记 每日励志: 要想在人生中获胜,就要比别人更早地努力.而要及早努力,需要及早地为自己的人生做出规划,做好人生定位 前言: 今天小编带大家认识 ...

最新文章

  1. 皮一皮:多少人的爱情在昨天就像他一样...
  2. 04.search_template
  3. 深度学习(二)——深度学习常用术语解释, Neural Network Zoo, CNN, Autoencoder
  4. 初识STM32F407芯片
  5. 腾讯与新浪微博开放平台之比较
  6. libtorch-gpu推理时占用CPU 100%问题解决
  7. 在proteus中共阴数码管的驱动与使用
  8. 苹果4放入卡还是显示无服务器,iPhone4S不识别SIM卡 官方出解决方法
  9. 语音芯片ic分类以及sop8的otp语音芯片对比 选型
  10. 腾达ap设置说明_腾达(Tenda)F6无线信号放大模式(Client+AP)设置教程 | 192路由网
  11. js 京东关闭广告 pink
  12. Win7 定时关机,重启命令
  13. 计算机动态评估英语阅读,【计算机教育论文】谈计算机动态评价模式同伴反馈有效性(共4305字)...
  14. python读书笔记2000_python高级编程读书笔记(一)
  15. c语言数独出题程序,C语言实现的数独解题程序
  16. 【数字IC前端笔试真题精刷(2022.8.14)】大疆——数字芯片开发工程师B卷
  17. python微信自动聊天小工具
  18. springboot+校园招聘管理 毕业设计-附源码161815
  19. filebeat重复采集数据问题排查
  20. matlab pcm encode,[MATLAB基础] PCM编码及解码

热门文章

  1. [跟我学UML] UML包图中的包引入和包合并
  2. 正交试验优化荔枝乳酸菌饮料的配方
  3. React多页面应用脚手架-v1.3.0
  4. 使用 EOLINKER 进行接口测试的最佳路径 (下)
  5. easyui datagrid 自定义加载按钮实例
  6. 简单创建序列和触发器示例
  7. 三: cocos2d-x代码分析
  8. Opera浏览器无法观看土豆 优酷 新浪视频的解决办法!
  9. 谷歌年初将推低价平板电脑 与亚马逊竞争
  10. Java的新项目学成在线笔记-day13(九)