memset和memcpy的区别,memset起什么作用

memset和memcpy的区别,memset起什么作用

memset和memcpy的区别目录

memcpy和memset的区别

memset起什么作用

strcpy和memcpy的区别

memset和memcpy是C语言中的两个函数,它们的作用不同:

1. memset函数用于将一段内存空间的值设置为某个特定的值,通常用于初始化内存。例如,将一段内存空间全部设置为0:

“`

int arr[10];

memset(arr, 0, sizeof(arr));

“`

2. memcpy函数用于将一段内存空间的值复制到另一段内存空间中。例如,将一段内存空间复制到另一个数组中:

“`

int arr[10];

int arr2[10];

memcpy(arr2, arr, sizeof(arr));

“`

因此,memset和memcpy的主要区别在于它们所执行的操作不同:memset用于初始化内存,而memcpy用于复制内存。”

memcpy和memset的区别

memcpy

原型:extern void *memcpy(void *dest, void *src, unsigned int count);

用法:#include <string.h>

功能:由src所指内存区域复制count个字节到dest所指内存区域。

说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。

可以拿它拷贝任何数据类型的对象。

举例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。

memset

原型:extern void *memset(void *buffer, int c, int count);

用法:#include <string.h>

功能:把buffer所指内存区域的前count个字节设置成字符c。

说明:返回指向buffer的指针。

用来对一段内存空间全部设置为某个字符。

举例:char a[100];memset(a, ‘\0’, sizeof(a));

memset可以方便的清空一个结构类型的变量或数组。

如:

struct sample_struct

{

char csName[16];

int iSeq;

int iType;

};

对于变量

struct sample_strcut stTest;

一般情况下,清空stTest的方法:

stTest.csName[0]=’\0′;

stTest.iSeq=0;

stTest.iType=0;

用memset就非常方便:

memset(&stTest,0,sizeof(struct sample_struct));

如果是数组:

struct sample_struct TEST[10];

memset(TEST,0,sizeof(struct sample_struct)*10);

对这个问题有疑问,不是对函数的疑问,而是因为没有弄懂mem和str的区别。

mem是一段内存,他的长度,必须你自己记住

str也是一段内存,不过它的长度,你不用记,随时都可以计算出来

所以memcpy需要第三个参数,而strcpy不需要

memset起什么作用

memset是用第二个参数的值去填充第一个参数指向的内存块,

填充长度即为第三个参数.

而memcpy是把第二个参数的地址所指向的内存拷贝到第一个参数所指向的内存地址中,

长度也是第三个参数.

根据两个函数的涵义你可以知道

memcpy使用与memset完全可以独立.

两者并没有依赖关系.

strcpy和memcpy的区别

strcpy和memcpy主要有以下3方面的区别。

1、复制的内容不同。

strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。

2、复制的方法不同。

strcpy不需要指定长度,它遇到被复制字符的串结束符”\0″才结束,所以容易溢出。

memcpy则是根据其第3个参数决定复制的长度。

3、用途不同。

通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy

给TA打赏
共{{data.count}}人
人已打赏
python

jsonarray和jsonobject的区别

2024-3-29 16:16:23

python

tomcat配置项目访问路径,如何配置tomcat 的主目录

2024-3-29 16:34:03

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
打开微信,扫描左侧二维码,关注【旅游人lvyouren】,发送【101】获取验证码,输入获取到的验证码即可解锁复制功能,解锁之后可复制网站任意一篇文章,验证码每月更新一次。
提交