memset()函数

main(){inta[101];inti;memset(a,1,sizeof(a));for(i=1;i<=100;i++)printf("%d",a[i]);syst... 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()函数,这个是顶重要的问题
展开
 我来答
mike
2015-09-10 · 知道合伙人教育行家
mike
知道合伙人教育行家
采纳数:15109 获赞数:42259
担任多年高三教学工作。

向TA提问 私信TA
展开全部

  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、范例:

  

wangbinwh
2008-11-04 · TA获得超过639个赞
知道大有可为答主
回答量:1367
采纳率:100%
帮助的人:526万
展开全部
memset操作是以字节为单位的,如果把每个字节填充为1,就是memset(a, 1, sizeof(a));所以你打印出来的整型数是16843009,即0x01010101
如果你要让每个整型都是1,用最传统的办法,
for(i=0; i<101; i++)a[i]=1;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
兜里有两块糖
2008-11-04 · TA获得超过522个赞
知道小有建树答主
回答量:585
采纳率:100%
帮助的人:504万
展开全部
memset是从a[0]开始赋值的,但是你打印的是a[1]开始的,所以a[0]中还是一个不确定的值。
所以显示就异常了。
以字节为单位是说,你填充的东西是要占一个字节的大小,比如给字符数组初始化,memset(a,‘0’,100);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lxr841028
2008-11-04 · TA获得超过603个赞
知道答主
回答量:427
采纳率:0%
帮助的人:213万
展开全部
什么意思啊,memset是一个把字符串换成一些特定字的函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式