C语言memcpy()函数和memmove()函数

关于 memcpy() 函数,请先看链接

memcpy() 函数和 memmove() 函数的函数原型如下:

void* memcpy(void * restrict s1, const void * restrict s2, size_t n);
void* memmove(void * s1, const void * s2, size_t n);

两函数作用相似,都是指针 s2 指向的区域拷贝 n 个字节至 s1 指向的区域,并且都返回一个指针指向 s1。

所不同的是 memcpy() 函数的参数带有关键字 restrict (关键字 restrict 用于限定指针,告知编译器,所有修改该指针所指向内容的操作全部都是基于该指针

的,即不存在其它进行修改操作的途径),在此处可以理解为 memcpy() 函数假设进行拷贝的两个内存区域之间没有重叠,因此如果两个内存区域存在重叠,

memcpy() 可能出错。而 memmove() 没有这样的假设,其拷贝过程类似于先将所有字节拷贝至一个临时区域,再将其拷贝至目的区域。

对于这两个函数而言,它们不知道也不关心数据的类型,只负责从一个位置把给定长度的字节拷贝到另一个位置而已。

最新文章

  1. 第二章作业-第3题(markdown格式)-万世想
  2. C# EasyUI树形结构权限管理模块
  3. 拦截js方法备忘录
  4. VS2010安装异常中断后无法安装的解决方法(安装时发生严重错误)
  5. 使用扩展方法(this 扩展类型)
  6. [swustoj 191] 迷宫逃离
  7. 配置wamp开发环境【1】
  8. BeanFactory调用getbean()对象
  9. Nancy启用跨站攻击防护(CSRF)
  10. 002 网上看的unity学习路线
  11. python 学习笔记 2 ----> dive into python 3
  12. Problem after converting keras model into Tensorflow pb - 将keras模型转换为Tensorflow pb后的问题
  13. LOJ6436 [PKUSC2018] 神仙的游戏 【FFT】
  14. [20171101]修改oracle口令安全问题.txt
  15. Coding in Delphi(前4章翻译版本) (PDF)
  16. VS2010 运行时 出现cmd窗口的设置方法
  17. 控制台报错: SCRIPT1006: Expected ')'
  18. 撩课-Web大前端每天5道面试题-Day15
  19. 系统分析与设计——WordCount
  20. 【转载】linux2.6内核initrd机制解析

热门文章

  1. Windows蓝牙失效超全攻略
  2. 通过CVE-2021-43297漏洞在Apache Dubbo<=2.7.13下实现RCE
  3. 针对vue中请求数据对象新添加的属性不能响应式的解决方法
  4. 【程序15】成绩>=90分用A表示,60-89分用B表示, 60分以下用C表示。
  5. 『无为则无心』Python基础 — 42、Python中文件的读写操作(二)
  6. dp学习(六)
  7. Java 中对象锁和类锁的区别? 关键字 Synchronized的用法?
  8. System.arraycopy()的用法?
  9. PyTorch 介绍 | BUILD THE NEURAL NETWORK
  10. js源码-数组中的push()和unshift()方法的源码实现