1

メイン関数に入るとすぐにスタック オーバーフローが発生する理由がわかりません。テキストファイルから読み取り、何らかの処理を行うことになっています。誰かが私に理由を説明し、それを解決する方法を提案できますか?

#include <iostream>
#include <ctime>
#include <cstdlib>
#include <fstream>
#include <iomanip>

using namespace std;
const int MAX=100;
enum countrytype{S,F};

struct dob
{
int day;
int month;
int year;
};

struct Local
{
char country[MAX];
char gender[MAX];
char name[MAX];
dob birthday;
int noofmod;
char mod[MAX][MAX];
int mark[MAX];

};

struct Foreign
{
char country[MAX];
char gender[MAX];
char name[MAX];
dob birthday;
int noofmod;
char mod[MAX][MAX];
int mark[MAX];

};

union Student
{
Local localstudent;
Foreign foreignstudent;

};

struct UOWstudent
{
countrytype ct;
Student st;

};

void readfile(ifstream &read,UOWstudent noofstudent[MAX]);

int main()
{
UOWstudent noofstudent[MAX];
ifstream read;

readfile(read,noofstudent);
cout<<endl
    <<noofstudent[0].st.foreignstudent.country
    <<endl
    <<noofstudent[0].st.foreignstudent.gender
    <<endl
    <<noofstudent[0].st.foreignstudent.name;



system("PAUSE");

}

void readfile(ifstream &read, UOWstudent noofstudent[MAX])
{
int i=0;
char country;
char filename[MAX];
cin>>filename;
read.open(filename);




    read>>country;
    /*if (country =='F')
    {
        read.getline(noofstudent[i].st.foreignstudent.country,MAX);

        read>>noofstudent[i].st.foreignstudent.gender;
        read.getline(noofstudent[i].st.foreignstudent.name,MAX);

    }

    else
        read.getline(noofstudent[i].st.foreignstudent.country,MAX);*/




}

これは私のテキストファイルです

F South Korea
Male Psy Park Jae Sang
31 - 12 -1977
3 CSCI114 55 CSCI103 44 GangNam
4

2 に答える 2