我正在制作一个小程序。首先,我制作了一个头文件:
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/