C语言编程有关memset函数

用memset给数组赋初值的时候
main()
{int i,b[10];
memset(b,0,10);
for(i=0;i<10;i++)printf("%d",b[i]);
}
为什么结果不是0000000000呀?

在你调用memset()函数时,第三个参数大小不对,应该是memset(b,0,40)。
实际上一个整型的变量在32位机的内存中占用4个字节
的大小。如:你可以定义一个整型变量a然后用:
printf("%d",sizeof(a));看到它在内存中占用的字节数。

当然建议在调用memset()函数时用sizeof()函数来自动
取它的大小,如你的例子中可以用:
memset(b,0,sizeof(b));
温馨提示:答案为网友推荐,仅供参考
第1个回答  2006-02-06
memset(b,0,10*sizeif(int));
才对,
因为memset操作得函数都是以byte为单位得,
具体就是上面你只将10byte置0了,而一个int是占4个byte得
第2个回答  2006-02-06
楼上的应该是sizeof啊 呵呵
相似回答