收录日期:2019/05/22 09:16:05 时间:2016/07/18 00:23:02 标签:C语言

#include <stdio.h>

int main(void)
{
char *p;

p=(char *)malloc(sizeof(char));

int count=1;

while((p[count-1]=getchar())!=EOF&&p[count-1]!='\n')
p=(char *)realloc(p,++count);


puts(p);
return 0;
}


这样书写是否有什么错误?

这样的话,系统是否会自动在字符串后面加'\0',还是必须在后面加一句p[count-1]='\0'这句呢
char *p;
自动加的
需加p[count-1]='\0'
内存泄露了啊!!
引用 3 楼 asimay 的回复:
内存泄露了啊!!


LS观点不一致啊,有高手给个答案好吗

还有内存泄露怎么说?
就是内存泄露,光有分配没有free
引用 5 楼 thefirstz 的回复:
就是内存泄露,光有分配没有free


恩,谢谢,老是忘这句free(),下次一定谨记

再请问:

系统是否会自动在字符串后面加'\0',还是必须在后面加一句p[count-1]='\0'?
 需要自己加!
 型如:char *p="hello,world!";
     这种的系统才会隐式得在字符串最后加 '\0'

puts(p);
这个函数要注意:puts将一个以null符终止的字符串写到标准输出,终止符不写出,最后puts又将一个换行符写到标准输出
注意在写puts函数前,自己在字符串末尾加上终止符‘\0’

03年注册的,现在算算,数字也到了第十年 如何查询得到不同的数据 今天无意中看到公司给别人出的面试题 如何禁止其他用户通过powerbuiler查询oracle下的某个表 奖品收到了,心情好,散分 -----------这个ID还可以登陆,特来发个贴,看看还有没有认识的? 新手的问题:鼠标不会动 。。。。。 在这里,2003-2012,十年了,过得太快了,1999-2012,从实习到现在,第十四年了,时光真快! protel99se 弹出对话框 Access violation at address 0C5C7CCE in module 石沉大海。。。。。。散分 关于网卡使用DMA传输数据的问题 导出xml时,xsi:noNamespaceSchemaLocation显示不完整? 关于OnMouseMove事件的问题 2012未日来了,改网名,换头像,迎接未日 请问 哪位高手真正理解遗传算法 IE浏览器的市场及份额 分享后天作者Jeffrey关于Windows8的免费社区活动 还是关于文思创新的,虽然名声垃圾,,, 分享一篇《黑客与画家》文集中的文章,作者是一个Lisp的倡导者 關於Tomcat的問題 请教大家一下 关于core dump的提问 此时此刻,你是最年轻!过一天,你就少一天!你也不知道过到哪一天算老!到底哪一天是界限! 刚学习smarty,为什么会显示{% $content %}? 如何将elf程序通过rs232传输到userland 请教各位老师VB代码复制保存文件的代码怎么写 PB换肤+界面组件 SatManager5.1发布 各位帮我出出主意,遇到这样的女生怎么办 请问这个是数据库的连接问题吗 该怎么解决呢