本文主要是介绍malloc之后要记得memset,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
下面的代码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");
这篇关于malloc之后要记得memset的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!