C++中的memset函数求解,它有三个参数分别是什么作用?

 我来答
扈琇保瀚
2019-12-17 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.2万
采纳率:34%
帮助的人:705万
展开全部
void
*memset(void
*s,
int
ch,
unsigned
n);
将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ascii值,
块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作,
其返回值为指向s的指针
这题直接问我啊!给分吧!
千江月success
2013-04-29 · TA获得超过827个赞
知道小有建树答主
回答量:1031
采纳率:100%
帮助的人:918万
展开全部
#include <cstdio>
#include <memory>
void main()
{
int a[10];
memset(a, '\a', 10);
printf("%d\n", '\a');
printf("%d", a[1]);
printf("%d", a[2]);
}
怎么可能无所谓,有两处错误,\a ASCII是7,不是97,
memset(a,'\a',10*sizeof(int));正常这样才是对的 否则只有前两个int初始化了。。
----------- 但是不幸的是我写的也是错的,因为memset是按字节填充的,所以我的结果每个里面的值是 117901063=7*(2^24+2^16+2^8+1)
更多追问追答
追问
memset第三个参数是不是把数组的10个元素都转化为ASCII
追答
不是,第三个参数数值假设是n, memset就是把n个字节都赋值成第二个参数值~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-29
展开全部
目标地址,字符内容,长度
更多追问追答
追问
目标地址是指?
追答
你要操作的地址,通常有指针传入。
例如
int a[10];
memset(a,'\a',10);
就吧a数组里每个都变成97了。97是\a对应的ascii
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式