我正在制作一个小程序。首先我制作了一个头文件:
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
你能告诉我这个错误是什么意思吗?我怎么能摆脱这个错误。
答案 0 :(得分:3)
UserInfo addUser[100];
的元素索引为0 - 99。
所以修复: -
for( int a = 0; a <= 100; a++){
^^This should be a < 100
}