memmove用于从src拷贝count个字符到dest,如果目标区域和源区域有重叠的话,

memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。但复制后src内容会被更改。

但是当目标区域与源区域没有重叠则和memcpy函数功能相同。

#include

#include

#include

void *my_memmove(void *dst, const void *src, size_t n)

{

assert(dst);

assert(src);

char *pdst = (char *)dst;

char *psrc = (char *)src;

if ((pdst >= psrc) && (pdst <= psrc + n))//重叠

{

while (n--)

{

*(pdst+n) = *(psrc+n);

}

}

else//不重叠

{

while (n--)

{

*pdst++ = *psrc++;

}

}

return dst;

}

int main()

{

int i = 0;

int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

my_memmove(&arr[2], &arr, 20);

for (i = 0; i < 10; i++)

{

printf("%d ", arr[i]);

}

printf("\n");

system("pause");

return 0;

}

memmove函数c语言实现,【C语言】实现memcopy、memmove函数相关推荐

  1. C语言再学习 -- 常用头文件和函数(转)

    参看:C/C++常用头文件及函数汇总 linux常用头文件如下: POSIX标准定义的头文件 <dirent.h>        目录项 <fcntl.h>         文 ...

  2. C语言semaphore头文件,C语言再学习 -- 常用头文件和函数

    Linux常用头文件如下: POSIX标准定义的头文件 < dirent.h>        目录项 < fcntl.h>         文件控制 < fnmatch. ...

  3. C语言字符串、文件操作常用操作函数,

    C语言字符串常用操作函数 C语言字符串.文件操作常用操作函数 字符串输出 - puts() 字符串输入 - gets() 字符串比较 - strcmp() 字符串复制 - strcpy() 字符串连接 ...

  4. R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤、条件推理决策树是传统决策树的一个重要变体、条件推理树的分裂是基于显著性测试而不是熵/纯度/同质性度量来选择分裂

    R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤(Conditional inference trees).条件推理决策树是传统决策树的一个重要变体.条件推理树的分裂是基于显著性 ...

  5. R语言ggplot2可视化:通过在element_text函数中设置ifelse判断条件自定义标签文本的显示格式:例如、粗体、斜体等

    R语言ggplot2可视化:通过在element_text函数中设置ifelse判断条件自定义标签文本的显示格式:例如.粗体.斜体等 目录

  6. R语言使用caret包中的createFolds函数对机器学习数据集进行交叉验证抽样、返回的样本列表长度为k个

    R语言使用caret包中的createFolds函数对机器学习数据集进行交叉验证抽样.返回的样本列表长度为k个 目录

  7. R语言使用ggplot2包的快速可视化函数qplot绘制基础密度图实战

    R语言使用ggplot2包的快速可视化函数qplot绘制基础密度图实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制基础密度图实战 #仿真数据

  8. R语言使用ggplot2包的快速可视化函数qplot绘制分组点图(带状图)并配置分组颜色实战

    R语言使用ggplot2包的快速可视化函数qplot绘制分组点图(带状图)并配置分组颜色实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制分组点图(带状图)并配置分组颜色实战 #仿真 ...

  9. R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter、分组颜色配置)实战

    R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter.分组颜色配置)实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter.分组颜色配置) ...

  10. R语言使用ggplot2包的快速可视化函数qplot绘制密度图(主题、轴标签设置)实战

    R语言使用ggplot2包的快速可视化函数qplot绘制密度图(主题.轴标签设置)实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制密度图(主题.轴标签设置)实战 #仿真数据

最新文章

  1. mysql修改校对集_MySQL 教程之校对集问题
  2. 数据库中事务并发问题
  3. VC Ws2_32.lib
  4. [codevs] 1098 均分纸牌
  5. Spring MVC异常处理 - @ ControllerAdvice,@ ExceptionHandler,HandlerExceptionResolver
  6. SAP License:年度结算的步骤
  7. 同行压力(兼谈敏捷团队,绩效管理,自组织团队)
  8. win7系统计算机无最小化,win7纯净版系统任务栏无法显示网页最小化窗口怎么办...
  9. Xen Server 7.0 一直无法退出维护模式
  10. CocoaLumberjack
  11. unrecognized selector sent to instance
  12. 菜鸟教程java在线编辑器_HTML 编辑器
  13. 乐播投屏总是自动断开_乐播投屏- 投屏常见问题 投屏在线客服
  14. php网站 怎么查是否开源,怎么查看网站的开源程序?
  15. DrGraph - SVG模块之一:显示与节点选择
  16. 福建船政交通职业学院计算机应用技术录取,福建船政交通职业学院单招2020年(单独招生录取分数线)...
  17. Yamaha DGX660 电钢琴aux-in只响一边的处理记录
  18. python怎么表白源码_Python浪漫表白源码(附带详细教程)-Go语言中文社区
  19. 微信小程序WebSocket接口以及在小程序中的使用。
  20. 卧枕宋元|陈佩秋大师诞辰100周年纪念数字藏品即将发售!

热门文章

  1. SEM数据该如何分析?
  2. 微信注册页面html实现,微信注册.html
  3. 【无标题】基于javaweb、java的管理系统毕设计与实现怎样选题思路分享
  4. 永远的友谊_友谊的传递属性-温馨介绍的重要性
  5. 3月12日公开短线黑马牛股请点击验证
  6. android 涟漪背景,Android 水波效果 | 涟漪效果 实现
  7. redis的安装教程(单机、win10)
  8. Windows 10 D盘操作需要管理员权限
  9. 对我的数据分析工作帮助很大的“无用知识”
  10. Java云同桌学习系列(十九)——Linux系统