C程序 fopen_s打开文件 中断引发异常 堆已损坏

在用C编写一个通讯录,用结构体存数据,运行结束把通讯录中的数据存到“通讯录.dat”文件里。5个以下可以正常写入,6个以上就会引发异常 程序中断 堆已损坏。

结构体

typedef struct book
{
    char name[MAX_NAME];//20字节
    char sex[MAX_SEX];//6
    char number[MAX_NUMBER];//11
    char address[MAX_ADDR];//20
}conInfo;
运行结果及报错

img

是不是一次性写入的数据不能太多?请帮帮我,代码滞销了(dog)

估计是你的别的地方代码数组越界写入导致堆数据被破坏

https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/fopen-s-wfopen-s?redirectedfrom=MSDN&view=msvc-170