A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#include<iostream>
using namespace std;
struct info
{
        int age;
        char *name;
};
void output(struct info personal)
{
        cout<<"personal.age:"<<personal.age<<endl;
        cout<<"personal.name:"<<personal.name<<endl;
}

void main()
{
        cout<<"input age&name:"<<endl;
        info person;
        cin>>person.age;
        cin>>person.name;
        output(person);
}
源代码如上,程序运行会崩溃,我没有查出原因,麻烦大神帮我看一下,谢谢!
C:\Users\Administrator\Desktop

4 个回复

倒序浏览
求指导……
回复 使用道具 举报
不要骗我 你这是C?  C++吧
回复 使用道具 举报
呃……确实是c++
可以帮我看一下是什么原因吗?谢谢!
回复 使用道具 举报
你在结构体中定义了char *name;   
name在这里指针字符串,存储在常量区(不可变)
解决办法是将char *name改为char name[100];

  1. #include<iostream>
  2. using namespace std;
  3. struct info
  4. {
  5.     int age;
  6.     char name[100];
  7. };
  8. void output(struct info personal)
  9. {
  10.     cout<<"personal.age:"<<personal.age<<endl;
  11.     cout<<"personal.name:"<<personal.name<<endl;
  12. }

  13. int main()
  14. {
  15.     cout<<"input age&name:"<<endl;
  16.     info person;
  17.     cin>>person.age;
  18.     cin>>person.name;
  19.     output(person);
  20. }
复制代码



回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马