关于我在用vs创建通讯录的时候遇到一个异常

我在学习c++的过程中尝试创建一个通讯录,在我输完年龄之后出现以后异常,程序无法进行:

img

#include 
#include 
#define MAX 1000//(注意不要用“;”,会报错)
using namespace std;
//1.界面
void showMenu()
{
    cout << "************************" << endl;
    cout << "***** 1.添加联系人 *****" << endl;
    cout << "***** 2.显示联系人 *****" << endl;
    cout << "***** 3.删除联系人 *****" << endl;
    cout << "***** 4.查找联系人 *****" << endl;
    cout << "***** 5.修改联系人 *****" << endl;
    cout << "***** 6.清空联系人 *****" << endl;
    cout << "***** 0.退出通讯录 *****" << endl;
    cout << "************************" << endl;
}


struct Person
{
        string m_name;
        int m_sex;
        int m_age;
        string  m_phone;
        string m_addr;



};
struct addressbooks
{
    struct Person personarray[MAX];
    int m_Size;
};

//1.添加联系人函数
void addPerson(addressbooks* abs)
{
    //先判断通讯录是否满了
    if (abs->m_Size == MAX)
    {
        cout << "通讯录已经满了,无法添加!" << endl;
        return;
    }
    else
    {
        //name 
        string name;
        cout << "请输入一个姓名:" << endl;
        //cin>> abs->personarray[abs->m_Size].m_name;
        cin >> name;
        abs->personarray[abs->m_Size].m_name = name;
        //sex
        cout << "请输入一个性别:" << endl;
        cout << "1.男" << endl;
        cout << "2.女" << endl;
        int sex = 0;
        while (true)
        {
            cin >> sex;
            if (sex == 1 || sex == 2)//直到你输对为止
            {
                abs->personarray[abs->m_Size].m_sex = sex;
                break;
            }
            cout << "输入有误,请重新输入" << endl;
        }
        
        //age
        cout << "请输入年龄" << endl;
        int age = 0;
        cin >> age;
        abs->personarray[abs->m_Size].m_age = age;
        //phone
        cout << "请输入电话号码" << endl;
        string phone = 0;
        cin >> phone;
        abs->personarray[abs->m_Size].m_phone = phone;
        //address
        cout << "请输入家庭住址" << endl;
        string address = 0;
        cin >> address;
        abs->personarray[abs->m_Size].m_addr = address;
        //更新人数
        abs->m_Size++;
        cout << "添加成功!" << endl;
    }
    
}

int main()
{
    //创建通讯录结构体变量
    addressbooks abs;
    //初始化通讯录中当前人员个数
    abs.m_Size = 0;

    int select = 0;//用户输入

    while (true)
    {
        //菜单调用
        showMenu();
        cin >> select;
        switch (select)
        {
        case 1://添加联系人
            addPerson(&abs);//要注意用地址传递,值传递不改实参。
            break;
        case 2://显示联系人
            break;
        case 3://删除联系人
            break;
        case 4://查找联系人
            break;
        case 5://修改联系人
            break;
        case 6://清空联系人
            break;
        case 0://退出通讯录
            cout << "欢迎下次使用" << endl;
            system("pause");
            return 0;
            break;
        default:
            break;

        }
    }
    

    system("pause");
    return 0;
}

目前还没写完,只是做一个当前添加联系人的验证,不知道为什么会出现这个异常,各位帮忙看看,感谢万分!

是指针的问题。我把指针初始化指向0了,我解决了。

希望这篇文章能够帮助到您,https://blog.csdn.net/qq_45410446/article/details/126531376