Chinaunix
标题:
菜鸟提问:为什么新分配的内存会有数据,长度还一直是3
[打印本页]
作者:
87607042
时间:
2011-06-28 16:20
标题:
菜鸟提问:为什么新分配的内存会有数据,长度还一直是3
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char *tmp=(char *)malloc(14);
printf("tmp is %s\n",tmp);
printf("the length of the tmp is %d\n",strlen(tmp));
system("PAUSE");
return 0;
}
结果:
tmp is P
the length of the tmp is 3
请按任意键继续. . .
作者:
luckysir
时间:
2011-06-28 16:42
malloc函数不保证清0吧
calloc可以
具体细节man一下?
作者:
hellioncu
时间:
2011-06-28 17:08
里面有啥都正常。
每次都一样,很可能是因为运行环境都没变化
作者:
87607042
时间:
2011-06-28 19:26
感谢ls,已经弄清楚原因了,使用malloc,最好结合memset一起使用。
作者:
hellioncu
时间:
2011-06-29 09:56
感谢ls,已经弄清楚原因了,使用malloc,最好结合memset一起使用。
87607042 发表于 2011-06-28 19:26
只有在真正需要的时候才memset,免得影响性能
作者:
jimmyixy
时间:
2011-06-29 10:08
strlen遇到\0就结束了
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2