文章目录

  • 一、C语言--内存操作函数memmove
    • 1.1 memmove函数介绍
    • 1.2 memmove使用示例
  • 二、模拟实现memmove函数

一、C语言–内存操作函数memmove

1.1 memmove函数介绍

从source指针指向的位置开始,拷贝num个字节的内存块到destination中。

  • memmove函数和memcpy函数十分相似:都可以实现内存的拷贝。
  • 区别是,memmove可以用来destination和source有内存重叠时的拷贝

1.2 memmove使用示例

'//memmove  看名字是memory move其实他也是拷贝,但是可以应对内存重叠的情况。'
int main()
{int a[] = { 1,2,3,4,5,6,7,8,9,10 };memmove(a + 4, a + 2, 20);for (int i = 0; i < 10; i++){printf("%d ", a[i]);                 '//结果是:1 2 3 4 3 4 5 6 7 10  '}return 0;
}

二、模拟实现memmove函数

'//模拟实现memmove函数'
'//当source大于destination时,从左到右复制;否则就从右到左复制'
void* my_memmove(void* destination, void* source, size_t num)
{void* result = destination;while (num--){if (source > destination){*(char*)destination = *(char*)source;source = (char*)source + 1;destination = (char*)destination + 1;}else{*((char*)destination + num) = *((char*)source + num);}}return result;
}
int main()
{int a[] = { 1,2,3,4,5,6,7,8,9,10 };my_memmove(a + 4, a + 2, 20);for (int i = 0; i < 10; i++){printf("%d ", a[i]);}return 0;
}

C语言--内存操作函数memmove相关推荐

  1. C语言程序设计 | 模拟实现内存操作函数:strncpy, strncat, strncmp, memcpy, memmove

    模拟实现字符串和内存操作函数(二)目录: strncpy strncat strncmp strcmp memcpy memmove strncpy char* strncpy(char* dst, ...

  2. 字符串转内存c语言,【一起学C】C语言面试题必考:字符串操作函数,内存操作函数实现...

    本帖最后由 奉聪 于 2017-1-25 14:54 编辑 *******前言******* 我数一下,我发了几个帖子,1.2.3? 哈哈哈,没几个哈,感谢吾爱,让我学到了很多,乐于分享,共同进步! ...

  3. C语言——常见的字符串函数+内存操作函数的介绍及实现

    文章目录 前言 一.字符串函数 1.求字符串长度 strlen 2.长度不受限制的字符串函数strcpy.strcat.strcmp 字符串拷贝 strcpy 字符串追加拷贝 strcat 字符串比较 ...

  4. 手撕内存拷贝函数 memmove、memcpy

    做题家系列 -- 手撕内存拷贝函数 memmove.memcpy memcpy 函数原型 实现思路 手撕代码 面试注意要点 memmove 函数原型 实现思路 手撕代码 面试注意要点 总结 memcp ...

  5. C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)

    C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * st ...

  6. [C语言]文件操作函数

    [C语言]文件操作函数 ​ 本文主要学习**fopen,fclose,fgetc,fgets,fputc,fputs,fwrite,fread,feof**这几个文件操作函数. ​ 以上函数,需要导入 ...

  7. C 中的内存操作函数-memcpy 等(to be continued)

    文章目录 C中的内存操作函数 1.memcpy() 1.1 函数介绍 1.2 示例代码 1.3 Reference C中的内存操作函数 1.memcpy() 1.1 函数介绍 void *memcpy ...

  8. C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    C语言字符串操作函数 1. 字符串反转 - strRev 2. 字符串复制 - strcpy 3. 字符串转化为整数 - atoi 4. 字符串求长 - strlen 5. 字符串连接 - strca ...

  9. c语言全文件操作函数,C语言文件操作函数大全

    C语言 文件操作函数大全 C语言文件操作函数 2007-10-17 19:21 13.1C语言文件 1,两种文件存取方式(输入,输出方式) 顺序存取 直接存取 2,数据的两种存放形式 文本文件 二进制 ...

最新文章

  1. 浅谈跨平台框架 Flutter 的优势与结构
  2. Account mobile phone in CRM and C4C
  3. 你会接受师兄的追求吗?
  4. html响应式五栏布局,HTML – 响应式2列CSS布局,包括固定宽度的侧边栏?
  5. 笔记-网页内嵌Google地图与地理位置模拟
  6. androidx86安装pc后无法联网_Ubuntu 16.04 安装显卡驱动后循环登录和无法设置分辨率的一种解决方案
  7. 【毕业论文写作技巧】毕业设计(论文)写作框架
  8. webrtc 渲染_WebRTC 开发(六)摄像头采集与视频渲染分析
  9. python机器学习案例系列教程——层次聚类(文档聚类)
  10. java--复制文件的方法:
  11. 多种方式判断PC端,IOS端,移动端
  12. HAV-down1.1vs 大黄峰资源搜索 绿色特别版
  13. 汉字风格迁移篇---用于汉字多字体生成的多样性正则化StarGAN
  14. oracle minus 利用率,Oracle Minus 取差集(也可以用来做分页,但效率不高)
  15. 100句话记住7000个单词。
  16. Linux /etc/shadow(影子文件)内容解析(超详细)
  17. 意想不到,这个神奇的bug让我加班到深夜
  18. 管理储备与应急储备的区别--建群网培PMP
  19. 【赛纳斯】EC Raman电化学拉曼光谱检测系统推动科研新突破
  20. android指纹解锁动画,Android8.1 SystemUI Keyguard之指纹解锁流程

热门文章

  1. Hibernate5新的创建SessionFactory方式,使用Hibernate4的方式报异常XXX is not mapped
  2. java页面后退代码,JS后退一页, JS返回上一页代码, JS返回下一页,JS返回第几页,JS页面跳转...
  3. GO和KEGG富集分析详细步骤
  4. IOS OpenGL ES GPUImage 图像叠加 GPUImageOverlayBlendFilter
  5. sqlserver 2008 数据库 可疑
  6. 大数据生态和Spark简介
  7. Windows10系统添加打印机以及共享打印机步骤
  8. python 函数与字典
  9. Docker启动nginx容器--搭建网站
  10. CRM中客户端的开发