黑马程序员技术交流社区

标题: C语言部分:求大神帮我看一下程序崩溃的原因 [打印本页]

作者: JamesFeng    时间: 2016-1-29 23:18
标题: C语言部分:求大神帮我看一下程序崩溃的原因
#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
作者: JamesFeng    时间: 2016-1-31 01:16
求指导……
作者: 一枚小刁民    时间: 2016-2-1 17:15
不要骗我 你这是C?  C++吧
作者: JamesFeng    时间: 2016-2-4 23:07
呃……确实是c++
可以帮我看一下是什么原因吗?谢谢!
作者: 韦德460    时间: 2016-2-5 14:10
你在结构体中定义了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. }
复制代码








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2