C语言--内存操作函数memmove
文章目录
- 一、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相关推荐
- C语言程序设计 | 模拟实现内存操作函数:strncpy, strncat, strncmp, memcpy, memmove
模拟实现字符串和内存操作函数(二)目录: strncpy strncat strncmp strcmp memcpy memmove strncpy char* strncpy(char* dst, ...
- 字符串转内存c语言,【一起学C】C语言面试题必考:字符串操作函数,内存操作函数实现...
本帖最后由 奉聪 于 2017-1-25 14:54 编辑 *******前言******* 我数一下,我发了几个帖子,1.2.3? 哈哈哈,没几个哈,感谢吾爱,让我学到了很多,乐于分享,共同进步! ...
- C语言——常见的字符串函数+内存操作函数的介绍及实现
文章目录 前言 一.字符串函数 1.求字符串长度 strlen 2.长度不受限制的字符串函数strcpy.strcat.strcmp 字符串拷贝 strcpy 字符串追加拷贝 strcat 字符串比较 ...
- 手撕内存拷贝函数 memmove、memcpy
做题家系列 -- 手撕内存拷贝函数 memmove.memcpy memcpy 函数原型 实现思路 手撕代码 面试注意要点 memmove 函数原型 实现思路 手撕代码 面试注意要点 总结 memcp ...
- C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)
C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * st ...
- [C语言]文件操作函数
[C语言]文件操作函数 本文主要学习**fopen,fclose,fgetc,fgets,fputc,fputs,fwrite,fread,feof**这几个文件操作函数. 以上函数,需要导入 ...
- C 中的内存操作函数-memcpy 等(to be continued)
文章目录 C中的内存操作函数 1.memcpy() 1.1 函数介绍 1.2 示例代码 1.3 Reference C中的内存操作函数 1.memcpy() 1.1 函数介绍 void *memcpy ...
- C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
C语言字符串操作函数 1. 字符串反转 - strRev 2. 字符串复制 - strcpy 3. 字符串转化为整数 - atoi 4. 字符串求长 - strlen 5. 字符串连接 - strca ...
- c语言全文件操作函数,C语言文件操作函数大全
C语言 文件操作函数大全 C语言文件操作函数 2007-10-17 19:21 13.1C语言文件 1,两种文件存取方式(输入,输出方式) 顺序存取 直接存取 2,数据的两种存放形式 文本文件 二进制 ...
最新文章
- 浅谈跨平台框架 Flutter 的优势与结构
- Account mobile phone in CRM and C4C
- 你会接受师兄的追求吗?
- html响应式五栏布局,HTML – 响应式2列CSS布局,包括固定宽度的侧边栏?
- 笔记-网页内嵌Google地图与地理位置模拟
- androidx86安装pc后无法联网_Ubuntu 16.04 安装显卡驱动后循环登录和无法设置分辨率的一种解决方案
- 【毕业论文写作技巧】毕业设计(论文)写作框架
- webrtc 渲染_WebRTC 开发(六)摄像头采集与视频渲染分析
- python机器学习案例系列教程——层次聚类(文档聚类)
- java--复制文件的方法:
- 多种方式判断PC端,IOS端,移动端
- HAV-down1.1vs 大黄峰资源搜索 绿色特别版
- 汉字风格迁移篇---用于汉字多字体生成的多样性正则化StarGAN
- oracle minus 利用率,Oracle Minus 取差集(也可以用来做分页,但效率不高)
- 100句话记住7000个单词。
- Linux /etc/shadow(影子文件)内容解析(超详细)
- 意想不到,这个神奇的bug让我加班到深夜
- 管理储备与应急储备的区别--建群网培PMP
- 【赛纳斯】EC Raman电化学拉曼光谱检测系统推动科研新突破
- android指纹解锁动画,Android8.1 SystemUI Keyguard之指纹解锁流程
热门文章
- Hibernate5新的创建SessionFactory方式,使用Hibernate4的方式报异常XXX is not mapped
- java页面后退代码,JS后退一页, JS返回上一页代码, JS返回下一页,JS返回第几页,JS页面跳转...
- GO和KEGG富集分析详细步骤
- IOS OpenGL ES GPUImage 图像叠加 GPUImageOverlayBlendFilter
- sqlserver 2008 数据库 可疑
- 大数据生态和Spark简介
- Windows10系统添加打印机以及共享打印机步骤
- python 函数与字典
- Docker启动nginx容器--搭建网站
- CRM中客户端的开发