#include
typedef struct user{
char *name; //玩家用户名
double score; //游戏所用时间
}User;
User *user;
void login() //输入用户名
{
char a[20],*p=a;
printf("please input your ID:\n");
gets(p);
user->name=p;
return ;
}
int main()
{
login();
printf("%s",user->name);
return 0;
}
为什么程序运行不了呢?
局部变量在函数运行完会被销毁
建议给指针开辟空间 或者用全局变量
User * user ,这个user是指向User类型的指针,你这个指针为空,并没有指向一个结构体 , 去掉*试一下
User *user;改成User user;后面使用name的时候将箭头改成点,user.name
你定义的数组是在函数里面,函数执行结束,函数里面的数据就会被回收,你的name 指向了无效的地址了
再加上,你什么时候给它分配内存了。哪里来的对象。只是定义了指针。
User *user;
这里没有分配内存