В настоящее время я работаю над небольшим количеством кода, который будет искать в векторе типа Person (который я определил в коде и покажу, если потребуется). Если он найдет человека, он вернет свое имя. В настоящее время это работает, но если он не находит человека, он должен вернуть указатель Null. Проблема в том, что я не могу понять, как заставить его возвращать указатель Null! Это просто приводит к сбою программы каждый раз.Как вернуть нулевой указатель в функцию C++
Код:
Person* lookForName(vector<Person*> names, string input)
{
string searchName = input;
string foundName;
for (int i = 0; i < names.size(); i++) {
Person* p = names[i];
if (p->getName() == input) {
p->getName();
return p; //This works fine. No problems here
break;
} else {
//Not working Person* p = NULL; <---Here is where the error is happening
return p;
}
}
}
Только возвращение '0' (ноль). Это представление нулевого указателя в C++. –
'nullptr' будет лучше, но серьезно, используйте' std :: find_if' и предпочтительно 'std :: vector' без указателя. –
chris
О, а также вы не инициализировали P, так что почти в любом случае это имело бы значение! = 0. Помните, что C++ не инициализирует свои переменные автоматически. –