2013-09-22 52 views
1

我在製作一個小程序。首先,我做了一個頭文件:std :: bad_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 

你能告訴我是什麼錯誤意味着什麼,我該如何擺脫這一點。

+6

A <= 100是問題 – billz

+0

以及當我刪除for循環和這個代替 「如果使用( EUN == addUser [0] .getUN())「 if語句也不起作用。 @billz – user2625486

回答

3

UserInfo addUser[100];已經元素索引從0 - 99.

所以固定: -

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