
malloc之后要记得memset
发布日期:2021-05-09 00:20:57
浏览次数:19
分类:博客文章
本文共 276 字,大约阅读时间需要 1 分钟。
下面的代码buf的输出并非是"helloworld",而是"屯屯屯屯屯妄膮\x14y沞helloworld". strcat是将前者字符串的'\0'去掉,加上后面的字符串.而malloc之后不进行memset操作,buf的值实际上是乱码,而非空字符串. char *buf = (char*)malloc(11);strcat(buf, "helloworld");
正确的代码应该是如下的那样:
char *buf = (char*)malloc(11);memset(buf, 0, 11);strcat(buf, "helloworld");
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月20日 22时30分26秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
机器学习全教程
2019-03-14
idea在连接mysql数据库时区错误
2019-03-14
工程经济—建设工程定额
2019-03-14
1Z204050、施工质量不合格的处理
2019-03-14
【字节网盘】九款超好看不同页面404源码
2019-03-14
两款404页面自动跳转源码html
2019-03-14
MacOS 应对系统无响应的方法
2019-03-14
Mac隐藏辅助功能|自定义苹果Mac显示器
2019-03-14
ActivityNotFoundException异常错误
2019-03-14
git远程仓库切换
2019-03-14
学习Vue.js2.0(国外视频教程)
2019-03-15
微信小程序云开发:怎么删除云函数?已解决
2019-03-15
PyCharm配置anaconda环境
2019-03-15
Java面试题整理,闭关在家37天“吃透”这份345页PDF,纯干货
2019-03-15
word文档手写字母总会大写问题
2019-03-15
Spring 和 DI 依赖注入
2019-03-15
laravel server error 服务器内部错误
2019-03-15
iJ配置Maven环境详解
2019-03-15