为什么结构体扩容后程序末尾结构体会崩溃?

有没有d a o l a o帮帮忙

结构体

typedef struct Affair
{
    char name[100];
    char content[100];
    int type;
    char place[100];
    char sta[100];
    char end[100];
    int num;
    int lenName, lenContent, lenPlace, lenSta, lenEnd;
}AFFAIR, * P;

typedef struct Books
{
    int size;
    struct Affair affairArray[5];
}; 

扩容

void act()
{
    P affairArray = (P)malloc(sizeof(AFFAIR) * 10);
}

结束处

cout << "感谢使用!";
            free(abs.affairArray);
            memset(&abs, 0, sizeof(abs));
            return 0;

free(abs.affairArray);
memset(&abs, 0, sizeof(abs));
你都free了啊,怎么还memset去修改内存数据啊???