C语言初学者,在写一个程序编辑一个结构体,然后输入进文件的过程
出现的问题,就是它提示Run-Time Check Failure #2 - Stack around the variable 'stu' was corrupted.
然后输出的TXT文件有10MB之大,求问是怎么回事。
#include<stdio.h>
#include <cstdlib>
#define N 100
struct student
{
char name[200];
char no[200];
char partname[100];
char partno[200];
char score[100];
struct student* next;
};
int main()
{
int i{};
struct student stu[N];
int num1;//需要输入的学生人数
printf("请输入需要录入人数:\n");
scanf_s("%d", &num1);
if (N < num1)//动态录入数据
{
num1 = N;
printf("最大人数为N=100!\n");
}
for (int i = 0; i < num1; i++)
{
printf("\n请输入第%d个学生的信息", i + 1);
printf("\n学生姓名为:"); scanf_s("%s", stu[i].name, sizeof(stu));
printf("\n学生学号:"); scanf_s("%s", stu[i].no, sizeof(stu));
printf("\n该学生的零件的名称:"); scanf_s("%s", stu[i].partname, sizeof(stu));
printf("\n该学生的零件编号:"); scanf_s("%s", stu[i].partno, sizeof(stu));
printf("\n该学生的得分:"); scanf_s("%s", stu[i].score, sizeof(stu));
}
student stuu[N];
FILE* fpp;
fopen_s(&fpp, "期末大作业三.txt", "rb");
fread(stuu, sizeof(student), N, fpp);
fclose(fpp);
}
运行结果及报错内容
文件大到打不开= =