string.h库中的memcpy()和memmove()
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()相关推荐
- c语言中math的库函数,C语言中math.h库中的常用函数
C语言中math.h库中的常用函数 int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fa ...
- C语言中string函数库中的一些函数的用法
目录 1.memcpy函数 1.标准形式为 2.所对应的参数 3.该函数的返回值指向的是目标存储区 dist的指针 4.示例 2.memmoer 3.strcpy 1.函数原型 2.所对应的参数 3. ...
- 深扒头文件 <string.h> 中的函数 ------- C语言
在日常敲代码的过程中,当我们处理字符串时经常会使用字符串函数,调用字符串函数则需要包含头文件 <string.h>,对于头文件 <string.h> 中包含的函数你了解多少呢? ...
- c语言库函数总结----string.h库
前言 string.h库函数是工程中很常用的字符串操作库函数. 在这篇博客中总结一下常用的几个string.h有关的库函数,在工程中避免重复造轮子,换句话说提高工程效率 (* ̄︶ ̄). char *s ...
- C语言 -- string.h中函数功能详解与手动实现 - 02(常用函数memcpy、memmove、strcpy、strdup、strcat、strtok...)
内容预览 3.5.搬迁类型 --- 函数功能详细说明 :将内存空间中内容移动.复制到另一内存空间 3.6.搬迁类型 --- 函数功能测试与手动实现 3.6.1.memcpy.memccpy 3.6.2 ...
- memcpy和memmove函数的区别
文章目录 前言 memcpy函数 memmove函数 memcmp函数 前言 c语言<string.h>库里面有很多的字符函数,比如memcpy,memmove,memcmp等,这些函数是 ...
- strcpy,memcpy和memmove区别
strcpy和memcpy都是标准C库函数,它们有下面的特点. strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知strcpy ...
- memcpy、memmove、memset、memchr、memcmp、strstr详解
第一部分 综述 memcpy.memmove.memset.memchr.memcmp都是C语言中的库函数,在头文件string.h中.memcpy和memmove的作用是拷贝一定长度的内存的内容,m ...
- php 头文件,string.h是什么头文件
string.h是C语言标准库中一个常用的头文件,在使用到字符数组时需要使用. string.h在c语言和c++语言中都被广泛的使用,但是具体情况不是很一样.由于传统的C++脱胎于C,所以传统C++中 ...
最新文章
- 推荐一个学习golang的地址
- 打开高效文本编辑之门_Linux Awk自定义变量与操作符
- Python回归模型评估
- 反思自己钻牛角尖:间隔反思思维方法 时时刻刻反馈目标
- mysql限制类别_MySQL限制每个类别的结果
- 使用fuse.js_如何使用Fuse.js将搜索添加到React应用
- php 序列化方法,PHP序列化操作方法分析
- MySQL故障检测_检测MySQL的表的故障的方法
- python常用输入输出の方法
- 作者:胡清华(1976-),男,博士,天津大学计算机科学与技术学院教授。
- [轉]Exploit Linux Kernel Slub Overflow
- 锐起无盘找不到服务器,锐起无盘出现重启后连接不到服务器
- 动态视频壁纸多功能工具箱微信小程序源码,支持外卖CPS和流量主
- 计算机视觉教程6-1:图解双目视觉系统与立体校正原理
- 关于单片机引脚的别名定义的正确语法
- 分层图解决的一些最短路问题
- Hive 内置函数及自定义函数
- 硬件十万个为什么——运放篇(三)如何估算多级放大器的频宽
- java代码编写的文本特征提取_文本特征词提取算法
- Stay hungry, Stay foolish 的原义
热门文章
- linux火车游戏下载,火车撞击游戏下载-火车撞击安卓版v1.1-Linux公社
- linux通过安卓usb上网,请问如何让安卓手机通过usb使用电脑的网络
- 传统的 SSR 和 现代的 SSR 区别
- matlab小波分析求助,matlab小波分析求助
- 用象棋的思维趣说IT人的职业发展和钱途
- How-old带给美图应用们的思考
- Java 导出Excel
- Linux 脚本部署应用宝,应用宝:支付接入流程相关
- 数据可视化 - 三维场景的实现
- ug许可证错误未连接服务器10004,ug12许可错误,服务器未连接-10004ug打开报错 | 老伙计...