alloc在内存位置0x002b123c

alloc在内存位置0x002b123c

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

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);

之后,在我的其他函数中,无效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

您能告诉我错误的含义是什么,如何解决这个问题。

最佳答案

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

因此修复:

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

关于c++ - std::bad_alloc在内存位置0x002b123c,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18944732/

10-13 08:29