免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 10229 | 回复: 36
打印 上一主题 下一主题

[C] C风格字符串,都必须先memset为0才能用吗?为啥? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-11 15:54 |只看该作者 |正序浏览
  1. memset( insert_code_col,0,sizeof(insert_code_col) );
复制代码
为什么啊?为什么啊?

论坛徽章:
0
37 [报告]
发表于 2010-12-05 11:51 |只看该作者
谁也没说饭前“一定”要洗手,但是不洗手吃饭有“可能”的病。

论坛徽章:
0
36 [报告]
发表于 2010-12-05 11:17 |只看该作者
只要最后加了'\0'就没问题,不过我们公司的代码里面都是memset了

论坛徽章:
0
35 [报告]
发表于 2010-12-05 11:01 |只看该作者
良好的编程习惯是应该这样的,避免不必要的失误

论坛徽章:
0
34 [报告]
发表于 2010-11-29 18:30 |只看该作者
回复 8# krein8964


    学习了

论坛徽章:
0
33 [报告]
发表于 2010-11-22 17:07 |只看该作者
回复  程序c


    第二次的时候buffer里面的数据时123456789,现在你不清理buffer,直接往里面写入少于 ...
lsupper 发表于 2010-11-16 16:46


我又看了一次,怎么看第二次都是存的和第一次一样的123456789,可能我眼睛有问题,别见怪。

论坛徽章:
0
32 [报告]
发表于 2010-11-17 20:54 |只看该作者
C语言的话,字符串初始化只要把第一个字节置零即可。
用memset的话,可能是因为要把整个数组通过网络发送出去,怕泄漏栈的内容。应当使用变长解决。

论坛徽章:
0
31 [报告]
发表于 2010-11-17 09:17 |只看该作者
char str[100]; str[0] = 0; 足矣

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
30 [报告]
发表于 2010-11-17 08:15 |只看该作者
推荐运行程序之前先重启电脑(memset(0,0,0)),
运行之后立马关机(free(p); p=NULL)

这样你的程序就不会出错。

论坛徽章:
0
29 [报告]
发表于 2010-11-17 08:06 |只看该作者
你可以试着再问一下为什么要清零?不是清ff
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP