У меня есть class
, называемый ContactInfo
, и структурирована, как написано ниже:
class ContactInfo
{
private:
string contactName;
string contactNumber;
public:
ContactInfo()
{
contactName = "";
contactNumber = "";
}
//setter and getters
};
, и у меня есть функция, которая создает массив ContactInfo
и заполняет его с помощью пользовательского ввода.После заполнения массива он будет передан другой функции, которая будет сортировать его, указанная функция записывается так, как показано ниже.
void sortListByName(ContactInfo contactList[], int listSize)
{
for(int i = 0; i < listSize; i++)
{
for(int j = i+1; j < listSize+1; j++)
{
if(contactList[i].getContactName() > contactList[j].getContactName())
{
ContactInfo temp = contactList[j];
contactList[i] = contactList[j];
contactList[j] = temp;
}
}
}
}
Основной метод
int main()
{
...
int n;//array size
ContactInfo *newList = contactList(n);//populates the array.
sortListByName(newList, n);
...
}
Проблема заключается в том, чтопрограмма прекратит работу до того, как произойдет сортировка, и выдаст ошибку:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_M_construct null not valid