memcpy用法
函数原型
void *memcpy(void*dest, const void *src, size_t n);
功能
由src指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址的空间内。
头文件
#include<string.h>
返回值
函数返回一个指向dest的指针。
说明
1.source和destin所指内存区域不能重叠,函数返回指向destin的指针。
2.与strcpy相比,memcpy并不是遇到'\0'就结束,而是一定会拷贝完n个字节。
memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;
例:
char a[], b[];
memcpy(b, a,sizeof(b)); //注意如用sizeof(a),会造成b的内存地址溢出。 strcpy 就只能拷贝字符串了,它遇到'\0'就结束拷贝;例: char a[], b[];
strcpy(a,b);
3.如果目标数组destin本身已有数据,执行memcpy()后,将覆盖原有数据(最多覆盖n)。如果要追加数据,则每次执行memcpy后,要将目标数组地址增加到你要追加数据的地址。
//注意,source和destin都不一定是数组,任意的可读写的空间均可。
程序例
例1:
作用:将s中的字符串复制到字符数组d中。
#include<stdio.h>
#include<string.h> int main(void)
{ char*s="Golden Global View"; char d[]; clrscr(); memcpy(d,s,strlen(s)); d[strlen(s)]='\0';//因为从d[0]开始复制,总长度为strlen(s),d[strlen(s)]置为结束符 printf("%s",d); getchar(); return0; }
输出结果:GoldenGlobal View
例2:
作用:将s中第14个字符开始的4个连续字符复制到d中。(从0开始)
#include<string.h> int main(void)
{ char*s="Golden Global View"; char d[]; memcpy(d,s+,);//从第14个字符(V)开始复制,连续复制4个字符(View) d[]='\0'; printf("%s",d); getchar(); return0; }
输出结果: View
例3:
作用:复制后覆盖原有部分数据
#include<stdio.h> #include<string.h> int main(void)
{ char src[] = "******************************"; char dest[] = "abcdefghijlkmnopqrstuvwxyz0123as6"; printf("destinationbefore memcpy: %s\n", dest); memcpy(dest,src, strlen(src)); printf("destinationafter memcpy: %s\n", dest); return0; }
输出结果:
destinationbefore memcpy:abcdefghijlkmnopqrstuvwxyz0123as6 destinationafter memcpy: ******************************as6
memcpy用法的更多相关文章
- C memcpy()用法
https://blog.csdn.net/qq_21792169/article/details/50561570
- memcpy字节序问题
/* memcpy用法详解 */ #include <stdio.h> #include <stdlib.h> #include <string.h> //memc ...
- memcpy函数用法
memcpy函数用法 .分类: VC++ VC++ mfc matlab 2011-12-01 19:17 14538人阅读 评论(0) 收藏 举报 null 原型:extern void *memc ...
- memcpy的用法总结
1.memcpy 函数用于 把资源内存(src所指向的内存区域) 拷贝到目标内存(dest所指向的内存区域):拷贝多少个?有一个size变量控制拷贝的字节数:函数原型:void *memcpy(voi ...
- 转: memcpy的用法总结
1.memcpy 函数用于 把资源内存(src所指向的内存区域) 拷贝到目标内存(dest所指向的内存区域):拷贝多少个?有一个size变量控制拷贝的字节数:函数原型:void *memcpy(voi ...
- 转:memcpy的用法总结
1.memcpy 函数用于 把资源内存(src所指向的内存区域) 拷贝到目标内存(dest所指向的内存区域):拷贝多少个?有一个size变量控制拷贝的字节数:函数原型:void *memcpy(voi ...
- memcpy函数的用法以及实现一个memcpy函数
memcpy的用法 在项目中经常用到memcpy来实现内存的拷贝工作,如下代码片段 memcpy( pData, m_pSaveData_C, iSize * sizeof( unsigned sho ...
- memset,memcpy,memcmp用法
void* memset(void *s, int ch, size_t n); 将s所指向的某一块内存中的前n个字节的内容全部设置为ch指定的ASCII值. 例如:memset(lpMyStruct ...
- memcpy的用法及实现
memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中,返回dest所指内存地址的起始位置. #include <string.h&g ...
随机推荐
- Maven构建跳过测试步骤
有时候我们不想再执行maven的package或者install命令时每次都执行test,那么可以在pom.xml里的build->pluginManagement->plugins新增如 ...
- junit基础学习
学习地址一:http://blog.csdn.net/andycpp/article/details/1327147/ 学习地址二:http://blog.csdn.net/zen99t/articl ...
- c# HttpWebResponse 调用WebApi
public static class WebApiCaller { public static string HttpPost(string url, string body) { try { // ...
- ubuntu 环境变量配置
1.vim /etc/environment 2.vim /etc/profile export JAVA_HOME=/opt/jdk1.6.0_45PATH=$JAVA_HOME/bin:/pub/ ...
- 安装S_S相关报错的troubleshooting
在安装S_S server时,在Debian上会出现类似如下的报错: File , in <module> sys.exit(main()) File , in main config = ...
- 【转】Jmeter在命令行运行技巧
For non-interactive testing, you may choose to run JMeter without the GUI. To do so, use the followi ...
- php对数组中的值进行排序
案例 <?php $a = array('1124','1125','1126'); $s1 = 1124; $s2 = 1125; $ks1 = array_search($s1,$a); $ ...
- thinkphp中的volist标签
属性: name(必须):要输出的数据模板变量 id(必须):循环变量 offset(可选):要输出数据的offset length(可选):输出数据的长度 key(可选):循环的key变量,默认值为 ...
- js操作window
js操作window 常用属性 window.closed // window是否关闭 window.length // iframe个数 window.name // 获取和设置window的名字 ...
- blockground
颜色的表示方法 一共有三种:单词.rgb表示法.十六进制表示法 rgb:红色 绿色 蓝色 三原色光学显示器,每个像素都是由三原色的发光原件组成的,靠明亮度不同调成不同的颜色的.用逗号隔开,r.g.b的 ...