这一段C程序出了什么问题?谁能给我讲明白

来源:百度知道 编辑:UC知道 时间:2024/06/27 06:41:39
main()
{
char *s,*s1;
char *user();

gets(s1);
s=user(s1);
printf("this is:%s\n",s);
}
char *user(char *s1)
{
char *temp;
temp=s1;
return temp;
}
=============
我以为这样就可以打印出刚才输入的s1,但是为什么运行的时候输入了之后按回车,什么都没发生??????出错在哪里?

没有为s1分配空间
下面的程序就行了
main()
{
char *s,*s1;
char *user();
s1 =(char*)malloc(32);
gets(s1);
s=user(s1);
printf("this is:%s\n",s);
free(s1);
}
char *user(char *s1)
{
char *temp;
temp=s1;
return temp;
}