memset用法

来源:互联网 发布:淘宝卖家信用怎么算 编辑:程序博客网 时间:2024/06/09 23:03
void *memset(void *s, int ch, size_t n);
作用是在一段内存块中填充某个给定的值,它是对较大的结构体数组进行清零操作的一种最快方法,如:
struct sample_struct
{
char csName[16];
int iSeq;
int iType;
};
对于变量
struct sample_struct 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);
另外:如果结构体中有数组的话还是需要对数组单独进行初始化处理的。


错:
void main()
{
char *s = "Golden Global View";
memset(s,'G',6);
printf("%s",s);
}
对:
void main()
{
char s[] = "Golden Global View";
memset(s,'G',6);
printf("%s",s);
}
(见char*与char[]的区别)

memset() 函数常用于内存空间初始化。如:
char str[100];
memset(str,0,100);
0 0