편집 기록

편집 기록
  • 프로필 유동욱님의 편집
    날짜2018.10.01

    왜 insert 함수가 실행되지 않는지 모르겠어요


    오류내용: 137줄에서 실행은 되는데 insert 함수에서 문제가 생긴것 같아요.. 디버깅을 돌려봤는데 예외가 throw됨: 읽기 액세스 위반입니다. _My_data이(가) nullptr였습니다. 라고 나오는데 뭐가 문제인걸까요..

    class student {
    public:
        string name;
        int id;
        string grade;};
    
    class table {
    public:
        int tsize, size;
        int idx = 0;
        table(int n);
        student *stp;
        void insert(string name,int id,string grade);
    };
    
    table::table(int size) {
        tsize = size;
    } //int size를 받는 클래스 생성자
    
    void table::insert(string name,int id,string grade) { // 문제 발생
        if (idx < tsize) {
            stp[idx].name = name;
            stp[idx].id = id;
            stp[idx].grade = grade;
            idx++;
        }
        else
            cout << "table full";
    }
    
    int main() {
    
        int size;
        string name;
        int id;
        string grade;
    
        cout << "학생 수를 입력 >>" << endl;
        cin >> size;
        table t(size);
        for (int i = 0; i < size; i++) {
            cout << "학생 정보 입력(이름 학번 성적 순)" << endl;
            cin >>name;
            cin >>id;
            cin >>grade;
            t.insert(name,id,grade); //insert 함수 문제 발생
            }
    
    }
    
  • 프로필 알 수 없는 사용자님의 편집
    날짜2018.10.01

    왜 insert 함수가 실행되지 않는지 모르겠어요


    오류내용: 137줄에서 실행은 되는데 insert 함수에서 문제가 생긴것 같아요.. 디버깅을 돌려봤는데 예외가 throw됨: 읽기 액세스 위반입니다. _My_data이(가) nullptr였습니다. 라고 나오는데 뭐가 문제인걸까요..

    class student { public: string name; int id; string grade;};

    class table { public: int tsize, size; int idx = 0; table(int n); student *stp; void insert(string name,int id,string grade); };

    table::table(int size) { tsize = size; } //int size를 받는 클래스 생성자

    void table::insert(string name,int id,string grade) { // 문제 발생 if (idx < tsize) { stp[idx].name = name; stp[idx].id = id; stp[idx].grade = grade; idx++; } else cout << "table full"; }

    int main() {

    int size;
    string name;
    int id;
    string grade;
    
    cout << "학생 수를 입력 >>" << endl;
    cin >> size;
    table t(size);
    for (int i = 0; i < size; i++) {
        cout << "학생 정보 입력(이름 학번 성적 순)" << endl;
        cin >>name;
        cin >>id;
        cin >>grade;
        t.insert(name,id,grade); //insert 함수 문제 발생
        }
    

    }