1

小さなプログラムを作っています。まず、ヘッダー ファイルを作成しました。

private:

    string UserName, Password;
public:


    void setUN(string);
    void setP(string);

    string getUN();

次に、私のcppファイルで:

    void UserInfo::setUN(string un){

    UserName = un;
}


    string UserInfo::getUN(){

    return UserName;
}

その後、メインでオブジェクトを作成します。

UserInfo addUser[100];

ユーザーを追加するには

cout<<"Enter Username : ";

    getline(cin,tUN);
    addUser[0].setUN(tUN);

その後、他の関数 void LoginScreen() で

私は同じオブジェクトを作りました:

UserInfo addUser[100];

string EUN, EP;
system("cls");
cout<<"Enter Username : ";
cin>>EUN;
cout<<endl;
cout<<"Enter Password : ";
//cin>>EP;

for( int a = 0; a <= 100; a++){
    if (EUN == addUser[a].getUN()){
        system("cls");
        cout<<"OMG HELP MEEE ";
        break;
    }
}

この for ループに到達するまで問題なく動作し、次のエラーが発生します。

std::bad_alloc at memory location 0x002b123c

エラーの意味と、これを取り除く方法を教えてください。

4

1 に答える 1

3

UserInfo addUser[100];0 ~ 99 のインデックスが付けられた要素があります。

だから修正:-

for( int a = 0; a <= 100; a++){
                ^^This should be a < 100
}
于 2013-09-22T14:18:34.943 に答える