
c语言中函数memset()是什么意思?什么功能
memset()的函数, 它可以一字节一字节地把整个数组设置为一个指定的值。 memset()函数在mem.h头文件中声明,它把数组的起始地址作为其第一个参数,第二个参数是设置数组每个字节的值,第三个参数是数组的长度(字节数,不是元素个数)。其函数原型为:
void *memset(void*,int,unsigned);
其中void*表示地址
memset()的第一个实参是数组名,数组名作参数即数组作参数,它仅仅只是一个数组的起始地址而已。
实现第一个memset()函数调用的内存布局见图7-3。 在函数memset()栈区,从返回地址往上依次为第1,2,3个参数。第1个参数中的内容是main()函数中定义的数组ia1的起始地址。第2个参数是给数组设置的值(0),第3个参数是数组的长度(50*2)。函数返回时,main()函数的数组中内容全置为0。
memset函数的用法?
在你申请了一块内存之后,
比如
int*p=null;
p=malloc(10*sizeof(int));//申请了10个int型内存
memset(p,0,10*sizeof(int));//全部初始化为0
memset的作用就是把你快连续的内存初始化为你给的值。
example
/*memset.c:thisprogramusesmemsetto
*setthefirstfourbytesofbufferto"*".
*/
#include
#include
voidmain(void)
{
charbuffer[]="thisisatestofthememsetfunction";
printf("before:%s\n",buffer);
memset(buffer,'*',4);
printf("after:%s\n",buffer);
}
output
before:thisisatestofthememsetfunction
after:****isatestofthememsetfunction
关于memset函数
楼主希望通过库函数memset()来对一个数组进行初始化,需要了解一下该函数的工作原理。库函数memset()是针对字节操作的,其中第二个参数值被赋给第一个参数指向的内存地址开始的每一个字节,因此,这种初始化其实存在局限性,也导致其主要用于清除数组内容等。比如:假设i=0,1,2,...
memset(a,0,sizeof(a)); // 此时a[i]=0x00000000
memset(a,-1,sizeof(a)); // 此时a[i]=0xffffffff
memset(a,0x0f,sizeof(a)); // 此时a[i]=0x0f0f0f0f=252645135
由于500=0x1f4,400=0x190,因此,如果使用
memset(a,0x190,sizeof(a)); // 此时a[i]=0x90909090
所以,初始化过程还是建议使用循环语句来做。
C语言的memset函数
memset
原型:extern void *memset(void *buffer, int c, int count);
用法:#include
功能:把buffer所指内存区域的前count个字节设置成字符c。
说明:返回指向buffer的指针。
举例:
// memset.c
#include
#include
main()
{
char *s="Golden Global View";
clrscr();
memset(s,'G',6);
printf("%s",s);
getchar();
return 0;
}
相关函数:bzero,setmem,strset
推荐阅读
- ○ w3school,w3school和w3cschool两个网站有什么关系和区别
- ○ w3c,W3C是干什么的?
- ○ w3,营养学中的常用英文缩写及其含义,跪求各位大哥大姐!谢谢好
- ○ insert into,VB insert into 的用法
- ○ html css,CSS是什么?和HTML有什么区别?
- ○ jquery ajax,PCD刀具的焊接方法常用的有哪几个
- ○ 万维网联盟,万维网是什么意思
- ○ php手册,PHP+MySQL完全学习手册的图书目录
- ○ background-color,background和background-Color的区别介绍
- ○ css手册,什么是CSS样式表?
最新文章
- ○ w3school,w3school和w3cschool两个网站有什么关系和区别
- ○ w3c,W3C是干什么的?
- ○ w3,营养学中的常用英文缩写及其含义,跪求各位大哥大姐!谢谢好
- ○ insert into,VB insert into 的用法
- ○ html css,CSS是什么?和HTML有什么区别?
- ○ jquery ajax,PCD刀具的焊接方法常用的有哪几个
- ○ 万维网联盟,万维网是什么意思
- ○ php手册,PHP+MySQL完全学习手册的图书目录
- ○ background-color,background和background-Color的区别介绍
- ○ css手册,什么是CSS样式表?