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秒