C++问题/该内存不能为"written"

来源:百度知道 编辑:UC知道 时间:2024/06/23 17:26:23
我用C++按书上的要求编了一个小程序
//student.h (头文件)
class Student
{
public:
void set_value();
void display();
private:
int num;
char name[20];
char sex;
};

//student.cpp (在此文件中进行函数的定义)
#include<iostream>
#include"student.h"
using namespace std;
void Student::set_value()
{
cin>>"num">>num;
cin>>"name:">>name;
cin>>"sex:">>sex;
}
void Student::display()
{
cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
}

//009.cpp (主函数模块,我新建的工程就是009)
#include<iostream>
#include"student.h"
int main()
{
Student stud;
stud.set_value();
stud.display();
return 0;
}

编译后没有问题,可是在输入值后按

set_value这样写:
void Student::set_value()
{
cout<<"num:";
cin>>num;
cout<<"name:";
cin>>name;
cout<<"sex:";
cin>>sex;
}

把这两句改了就可以了cin>>"name:">>name;
和 cout<<"name:"<<*name<<endl;

一般来说,空指针会引起这样的问题,我想是NAME没有初始化的原因