memset()函数

来源:百度知道 编辑:UC知道 时间:2024/05/31 06:47:04
main()
{
int a[101];
int i;
memset(a,1,sizeof(a));
for(i=1;i<=100;i++)printf("%d ",a[i]);
system("pause");
}
为什么a[]不是1而是16843009.
按字节填什么意思,看不懂
如果要填为1要怎么写memset()函数
以字节为单位是什么意思
如果要填为1要怎么写memset()函数,这个是顶重要的问题

  1、memset是计算机中C/C++语言函数。将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 第二个值为指定的内存地址,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针。

  函数介绍:void *memset(void *s, int ch, size_t n);

  2、函数解释:将s中前n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。

  memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。

  3、范例:

  

memset操作是以字节为单位的,如果把每个字节填充为1,就是memset(a, 1, sizeof(a));所以你打印出来的整型数是16843009,即0x01010101
如果你要让每个整型都是1,用最传统的办法,