C语言中memset函数头文件为<memory.h> 或 <string.h>
C++ <cstring>
#include<stdio.h>
#include<memory.h>main()
{
char a[]="abcd";
printf("%s\n",a);
memset(a,'#',sizeof(a));
printf("%s",a);
}
1.memset() 函数常用于内存空间初始化。如:
char str[100];
memset(str,0,100);
2.memset()的深刻内涵:用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为:memset(a, '/0', sizeof(a));
memcpy用来做内存拷贝,可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:
char a[100],b[50];
memcpy(b, a, sizeof(b)); //将a[]拷贝到b[]中//注意如用sizeof(a),会造成b的内存地址溢出。
strcpy只能拷贝字符串,它遇到'/0'就结束拷贝;例:
char a[100],b[50];
strcpy(a,b);
补充:
memset可以方便的清空一个结构类型的变量或数组。如:
struct sample_struct
{
char csName[16];
int iSeq;
int iType;
};
对于变量
struct sample_strcut stTest;
用memset清空stTest:
memset(&stTest,0,sizeof(struct sample_struct));
如果是数组:struct sample_struct TEST[10];
则:memset(TEST,0,sizeof(struct sample_struct)*10);