memcpy()和memmove()可以处理任意类型的数组。

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

这俩个函数都从s2指向的位置拷贝n字节到s1指向的位置,而且都返回s1的值。所不同的是,memcpy()的参数带关键字restrict,即么memcpy()假设俩个内存区域之间没有重叠;而memmove不作这样的假设,所以拷贝过程类似于先把所有的字节拷贝到一个临时缓冲区,然后再拷贝到最终目的地。如果使用memcpy()时,俩区域重叠,其行为是未定义的,这意味着该函数可能正常工作,也可能失败。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>typedef struct
{char name[20];int age;
}student;void showarray(const int ar[], int n);
int main()
{int va[4] = {1, 2, 3, 4};int vb[4];student stu1={"lisi",21};student stu2;student stu3;printf("整形数组copy\n");memcpy(vb, va, sizeof(va));showarray(vb, 4);printf("结构体copy\n");memset((char *)&stu2, 0, sizeof(stu2));memset((char *)&stu3, 0, sizeof(stu3));memcpy(&stu2, &stu1, sizeof(stu1));printf("stu2[%s][%d]\n", stu2.name, stu2.age);   memcpy(&stu3, &stu1, sizeof(stu1));printf("stu3[%s][%d]\n", stu3.name, stu3.age); return 0;
}void showarray(const int ar[], int n)
{int index = 0;for(index = 0; index < n; index++){printf("%d", ar[index]);if(index % 6 == 5){putchar('\n');}}if(index % 6 != 1){putchar('\n');}
}

string.h库中的memcpy()和memmove()相关推荐

  1. c语言中math的库函数,C语言中math.h库中的常用函数

    C语言中math.h库中的常用函数 int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fa ...

  2. C语言中string函数库中的一些函数的用法

    目录 1.memcpy函数 1.标准形式为 2.所对应的参数 3.该函数的返回值指向的是目标存储区 dist的指针 4.示例 2.memmoer 3.strcpy 1.函数原型 2.所对应的参数 3. ...

  3. 深扒头文件 <string.h> 中的函数 ------- C语言

    在日常敲代码的过程中,当我们处理字符串时经常会使用字符串函数,调用字符串函数则需要包含头文件 <string.h>,对于头文件 <string.h> 中包含的函数你了解多少呢? ...

  4. c语言库函数总结----string.h库

    前言 string.h库函数是工程中很常用的字符串操作库函数. 在这篇博客中总结一下常用的几个string.h有关的库函数,在工程中避免重复造轮子,换句话说提高工程效率 (* ̄︶ ̄). char *s ...

  5. C语言 -- string.h中函数功能详解与手动实现 - 02(常用函数memcpy、memmove、strcpy、strdup、strcat、strtok...)

    内容预览 3.5.搬迁类型 --- 函数功能详细说明 :将内存空间中内容移动.复制到另一内存空间 3.6.搬迁类型 --- 函数功能测试与手动实现 3.6.1.memcpy.memccpy 3.6.2 ...

  6. memcpy和memmove函数的区别

    文章目录 前言 memcpy函数 memmove函数 memcmp函数 前言 c语言<string.h>库里面有很多的字符函数,比如memcpy,memmove,memcmp等,这些函数是 ...

  7. strcpy,memcpy和memmove区别

    strcpy和memcpy都是标准C库函数,它们有下面的特点. strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知strcpy ...

  8. memcpy、memmove、memset、memchr、memcmp、strstr详解

    第一部分 综述 memcpy.memmove.memset.memchr.memcmp都是C语言中的库函数,在头文件string.h中.memcpy和memmove的作用是拷贝一定长度的内存的内容,m ...

  9. php 头文件,string.h是什么头文件

    string.h是C语言标准库中一个常用的头文件,在使用到字符数组时需要使用. string.h在c语言和c++语言中都被广泛的使用,但是具体情况不是很一样.由于传统的C++脱胎于C,所以传统C++中 ...

最新文章

  1. 推荐一个学习golang的地址
  2. 打开高效文本编辑之门_Linux Awk自定义变量与操作符
  3. Python回归模型评估
  4. 反思自己钻牛角尖:间隔反思思维方法 时时刻刻反馈目标
  5. mysql限制类别_MySQL限制每个类别的结果
  6. 使用fuse.js_如何使用Fuse.js将搜索添加到React应用
  7. php 序列化方法,PHP序列化操作方法分析
  8. MySQL故障检测_检测MySQL的表的故障的方法
  9. python常用输入输出の方法
  10. 作者:胡清华(1976-),男,博士,天津大学计算机科学与技术学院教授。
  11. [轉]Exploit Linux Kernel Slub Overflow
  12. 锐起无盘找不到服务器,锐起无盘出现重启后连接不到服务器
  13. 动态视频壁纸多功能工具箱微信小程序源码,支持外卖CPS和流量主
  14. 计算机视觉教程6-1:图解双目视觉系统与立体校正原理
  15. 关于单片机引脚的别名定义的正确语法
  16. 分层图解决的一些最短路问题
  17. Hive 内置函数及自定义函数
  18. 硬件十万个为什么——运放篇(三)如何估算多级放大器的频宽
  19. java代码编写的文本特征提取_文本特征词提取算法
  20. Stay hungry, Stay foolish 的原义

热门文章

  1. linux火车游戏下载,火车撞击游戏下载-火车撞击安卓版v1.1-Linux公社
  2. linux通过安卓usb上网,请问如何让安卓手机通过usb使用电脑的网络
  3. 传统的 SSR 和 现代的 SSR 区别
  4. matlab小波分析求助,matlab小波分析求助
  5. 用象棋的思维趣说IT人的职业发展和钱途
  6. How-old带给美图应用们的思考
  7. Java 导出Excel
  8. Linux 脚本部署应用宝,应用宝:支付接入流程相关
  9. 数据可视化 - 三维场景的实现
  10. ug许可证错误未连接服务器10004,ug12许可错误,服务器未连接-10004ug打开报错 | 老伙计...