Я пытаюсь создать адресную книгу, пытаюсь выполнить поиск, но получаю ошибку сегментации.Я знаю, что это значит, но почему он пытается выделить используемую память?Почему он не ищет?
Вот код:
class contact{
private:
string fn="", ln="", email="", number="";
public:
void input();
void output();
void setfname(string f_n);
void setlname(string l_n);
void setemail(string emaila);
void setnumber(string num);
string getfname();
string getlname();
string getemail();
string getnumber();
contact();
contact(string f_n, string l_n, string emaila,string num);
};
void menu(string opt);
int search_contacts( contact contacts[],int MAX, string search);
int main(){
string search;
const int MAX=2;
contact contacts[MAX];
cout << "Enter up to " << MAX << " contacts.\n";
for (int i = 1; i <= MAX; i++)
{
contacts[0].input();
}
[menu function goes here]
contacts[0].output();
return 0;
}
int search_contacts(contact contacts[],int size, string search)
{
cout << "Search contact by LastName:____ ";
cin >> search;
bool lookup = false;
for(int index=0;index<size;index++)
{
if(contacts[index].getlname() == search)
{
lookup = true;
cout<<"Result found "<<endl;
break;
}
}
if(!lookup)
cout<<"no record found"<<endl;
}
void menu(string opt){
string search;
contact contacts[0];
const int MAX = 2;
[show menu msg...here]
cin>>opt;
// do this if the option selected is search
if(opt=="search")
{
search_contacts(contacts, MAX, search);
}
[more menu code]
}
void contact::input()
{
cout<<"fn and ln separate by a space: ";
cin>>fn>>ln;
cout<<"email: ";
cin>>email;
cout<<"phone number: ";
cin>>number;
}
void contact::output()
{
[output code... goes here];
}
string contact::getlname()
{
return ln;
}
[functions that delegates the variables...goes here]