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

조회수 4223회

오류내용: 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 함수 문제 발생
        }

}

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)