std :: bad_alloc在内存位置0x002b123c

时间:2013-09-22 14:12:19

标签: c++ unhandled-exception

我正在制作一个小程序。首先我制作了一个头文件:

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 for循环并且出现此错误时,它才能正常工作:

std::bad_alloc at memory location 0x002b123c

你能告诉我这个错误是什么意思吗?我怎么能摆脱这个错误。

1 个答案:

答案 0 :(得分:3)

UserInfo addUser[100];的元素索引为0 - 99。

所以修复: -

for( int a = 0; a <= 100; a++){
                ^^This should be a < 100
}