printf("%c",*p)这一句后面少一个分号。
为了保险起见,验证temp!='\n'&&temp!='\r',有的系统回车/换行不一样,是/r。
另外,用malloc分配了内存空间,但没有用free释放掉,这样不好,虽不会引起错误。
补充:
这样呢?我加了一个q来存分配的地址,最后free(q),再看看还报错不?
{
char *p,*q;
char temp;
q=p=(char *)malloc(100*sizeof(char));
for( ; (temp=getchar())!='\n' ; p++)
{
*p=temp;
printf("%c",*p);
}
free(q);
}
free跟的指针地址必须是malloc分配的指针地址,不能是p,因为p已经自增过很多次了。
你必须把p恢复原来的值,否则free一定会不成功
验证 没错啊
你怎么输入的?