C语言 memset函数

写了一个memset示例程序,运行后有乱码,请高手指教____________________________分割线___________________________... 写了一个memset示例程序,运行后有乱码,请高手指教
____________________________分割线________________________________
#include<stdio.h>
#include<string.h>
void pr( char * );
void main()
{
char xx[10],*a,yy[20],*b;
a=(char *)memset(xx,'1',10);
b=(char *)memset(yy,'a',20);
pr(a);
pr(b);
}
void pr( char *ss )
{
int i;
for(i=0;i<strlen(ss);i++)
{
printf("%c ",ss[i]);
}
putchar('\n');
}
___________________________分割线______________________________
运行结果:
展开
 我来答
瓮清秋艾斯
2020-03-25 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:571万
展开全部
memset
原型:extern
void
*memset(void
*buffer,
int
c,
int
count);
用法:#include
<string.h>
功能:把buffer所指内存区域的前count个字节设置成字符c。
说明:返回指向buffer的指针。
举例:
//
memset.c
#include
<syslib.h>
#include
<string.h>
main()
{
char
*s="Golden
Global
View";
clrscr();
memset(s,'G',6);
printf("%s",s);
getchar();
return
0;
}
相关函数:bzero,setmem,strset
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b0e28cae4
2011-09-07 · TA获得超过4016个赞
知道大有可为答主
回答量:1275
采纳率:85%
帮助的人:613万
展开全部
#include<stdio.h>
#include<string.h>
void pr( char * );
int main()
{
char xx[11],*a,yy[21],*b;

// 数组初始化,用字符串结束符:'\0'
memset(xx,'\0',sizeof(xx));
a=(char *)memset(xx,'1',sizeof(xx)-1);
pr(a);

memset(yy,'\0',sizeof(yy));
b=(char *)memset(yy,'a',sizeof(yy)-1);
pr(b);

return 0;
}
void pr( char *ss )
{
int i;
for(i=0;i<strlen(ss);i++)
{
printf("%c ",ss[i]);
}
putchar('\n');
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
重小楼666
2011-09-07 · TA获得超过355个赞
知道小有建树答主
回答量:223
采纳率:100%
帮助的人:205万
展开全部
问题出在strlen上,strlen计算字符串长度时,是以结束符为‘0’计算的。如果字符数组最后一个是‘0’,就不会出现问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jasonwyatking
2011-09-07 · TA获得超过357个赞
知道小有建树答主
回答量:288
采纳率:0%
帮助的人:247万
展开全部
printf("%d \n",strlen(ss)); //在这加一句你就知道了
for(i=0;i<strlen(ss);i++)
.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
真宏邈夫美
2019-10-01 · TA获得超过3.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:29%
帮助的人:815万
展开全部
该说的二楼已经说很清楚了,我补充一点,就是这个函数常用来在malloc后,将这段内存空间清空(如置0),以防在使用时(尤其是字符串)读出内存的随机值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式