I am pulling names as strings from a file, create a Person *p object, and put it into an array.
Then to search the array for a name but when I try to fetch the name I get a segmentation fault.
Why is this segmentation fault happening, and what can I do to fix it?
#include <iostream>
#include <string>
using namespace std;
class Person {
private:
    string firstName;
    string lastName;
    string phoneNumber;
public:
    Person();
    Person(string f, string l, string n);
    ~Person(void);
    void setName()
    {
    }
    string getFirstName()
    {
        return firstName;
    }
    string getLastName()
    {
        return lastName;
    }
    string getNumber() { return phoneNumber; }
    void print();
};
Array creation.
{
            ifstream file;
            file.open("phonebook.txt");
            if (!file.is_open()) //Check for File Error.
            {
                cerr << "Failed to open file" << endl;
                exit(1);
            }
            //Get Array Size
            string line;
            while (getline(file, line))
            {
                count++;
            }
            file.close();
            //Create an array
            Person *arrList[count];
            buildArray(arrList, count);
        if (uInput == "a" || uInput == "A") //To add
        {
            int x = addPerson();
            if (x == 1)
            {
                count++;
            }
            delete[] arrList;
        }
void buildArray(Person *arr[], int size)
{
    string f, l, n;
    ifstream file;
    file.open("phonebook.txt");
    for (int i = 0; i < size; i++)
    {
        file >> f >> l >> n;
        Person *p = new Person(f, l, n);
        arr[i] = p;
        delete p;
    }
}
The search, This is the part that has the trouble. I have tried a few different things including creating 2 Persons, and comparing their parts but whenever it goes into the .h it can not return the name.
if (uInput == "s" || uInput == "S")
            {                   //To Search
                string f, l;
                cout << "Find Who (Firstname Lastname) " << endl;
                cin >> f >> l;
                Person *n = new Person(f, l, "");
                int i = 0;
                bool found = false;
                while (i <= count && found == false)
                {
                    Person *p = new Person("", "", "");
                    p = arrList[i];
                    if (p->getFirstName() == n->getFirstName() && p->getLastName() == n->getLastName())
                    {
                        arrList[i]->print();
                        found = true;
                        delete p;
                        delete n;
                    }
                    i++;
                }
                while (i == count && found == false)
                {
                    cout << "No results found. " << endl;
                    found = true;
                }
            }
 
    