C++指针在使用之前一定要初始化,否则指针指向一个不可预知的内存区域,导致程序出错甚至系统崩溃。
#include <iostream>
using namespace std;
struct student
{
int idNumber;
char* name;
int age;
char* department;
float gpa;
};
void stuOut(student stu);
int main()
{
student s1,s2;
cout<< "请输入学号:";
cin>>s1.idNumber;
cout<<endl<< "请输入姓名:";
s1.name= new char[]; //为指针申请内存;
cin>>s1.name;
cout<<endl<< "请输入院系:";
s1.department= new char[]; //为指针申请内存
cin>>s1.department;
cout<<endl<< "请输入年龄:";
cin>>s1.age;
cout<<endl<< "请输入成绩:";
cin>>s1.gpa;
s2=s1;
stuOut(s2);
return 0;
}
void stuOut(student stu)
{
cout<< "s2的学号:"<<stu.idNumber<<endl;
cout<< "S2的姓名:"<<stu.name<<endl;
cout<< "s2的院系:"<<stu.department<<endl;
cout<< "s2的年龄:"<<stu.age<<endl;
cout<< "s2的成绩:"<<stu.gpa<<endl;
}
using namespace std;
struct student
{
int idNumber;
char* name;
int age;
char* department;
float gpa;
};
void stuOut(student stu);
int main()
{
student s1,s2;
cout<< "请输入学号:";
cin>>s1.idNumber;
cout<<endl<< "请输入姓名:";
s1.name= new char[]; //为指针申请内存;
cin>>s1.name;
cout<<endl<< "请输入院系:";
s1.department= new char[]; //为指针申请内存
cin>>s1.department;
cout<<endl<< "请输入年龄:";
cin>>s1.age;
cout<<endl<< "请输入成绩:";
cin>>s1.gpa;
s2=s1;
stuOut(s2);
return 0;
}
void stuOut(student stu)
{
cout<< "s2的学号:"<<stu.idNumber<<endl;
cout<< "S2的姓名:"<<stu.name<<endl;
cout<< "s2的院系:"<<stu.department<<endl;
cout<< "s2的年龄:"<<stu.age<<endl;
cout<< "s2的成绩:"<<stu.gpa<<endl;
}
转载于:https://blog.51cto.com/pauloy/93066