yuchu3d 2022-01-29 19:00 采纳率: 80%
浏览 96
已结题

C语言,memcpy 和memmove函数在使用时如何选择? 如何判断两个指针所指向的内存区域是否有重叠?

今天学习了memcpy和memmove函数,如果两个数组的内存区域有重叠的部分,那么memcpy在处理这样的数组时,有可能会发生错误,而memmove能够处理这样的问题。

1、 在需要拷贝数组的时候,到底是先择memcpy还是选择memmvoe? 功能一样,我到底用哪个?

2、怎样判断两个指针所指的区域有没有重叠? 我怎么就一眼能看出来有重叠?

谢谢!

  • 写回答

9条回答 默认 最新

  • 慕雪华年 C/C++领域新星创作者 2022-01-29 19:17
    关注
    获得0.35元问题酬金

    memmove和memcpy函数👉https://blog.csdn.net/muxuen/article/details/122691244

    • 拷贝数组的时候选用memmove更好
    • 判断重叠,需要计算起始地址+拷贝数据量后是否已经到达了目标地址。比如一个数组a[10],我们写入起始地址a[1],目标地址a[3],拷贝5个int类型的大小,这个时候就是重叠了!
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月6日
  • 创建了问题 1月29日

悬赏问题

  • ¥15 C++ 句柄后台鼠标拖动如何实现
  • ¥15 有人会SIRIUS 5.8.0这个软件吗
  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题