c语言调试问题
为什么我把学号stuCount改为char的数组类型就没错,用int类型就说
测试.exe 中的 0x772e15de 处有未经处理的异常: 0xC0000005: 读取位置 0xcccccccc 时发生访问冲突
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define STUDENT_NUM 52 //学生人数
#define COMMAND_LEN 6//命令字符数
typedef struct studentMessage
{
int stuCount;//学号
char name[12];//姓名
int grade;//年级
int classNum;//班级
char phoneNum[12];//手机号码
char address[20];//住址
//成绩
int Marktotal;//总成绩
float average;//平均分
int MarkCh;//语文
int MarkMath;//数学
int MarkEn;//英语
int rankNum;//排名
}stuM;
int file(void)
{
int k = 2011011551;
stuM student[STUDENT_NUM];
int i,j;
FILE * fp = fopen("E:\\c_test.dat","a+");//读文件中的字符
for(i = 0;i < STUDENT_NUM;i++)
{
fscanf(fp,"%d %s %d %d %s %s %d %f %d %d %d %d",student[i].stuCount,student[i].name,&student[i].grade,&student[i].classNum,student[i].phoneNum,student[i].address,&student[i].Marktotal,&student[i].average,&student[i].MarkCh,&student[i].MarkMath,&student[i].MarkEn,&student[i].rankNum);//用定义的数组类型接收读取到的字符
if(feof(fp))// 代表着字符串的结束
break;
}
for(j = 0;j < i;j++)
{
printf("%3d ",j + 1);
printf("%d %-8s %d %d %s %-6s %4d %2.2f %3d %3d %3d %3d\n",student[j].stuCount,student[j].name,student[j].grade,student[j].classNum,student[j].phoneNum,student[j].address,student[j].Marktotal,student[j].average,student[j].MarkCh,student[j].MarkMath,student[j].MarkEn,student[j].rankNum);
}
fseek(fp,0L,SEEK_END);
for(;k < 2011011600;k++)
fprintf(fp,"%d\n",k);
getch();
return 0;
}
int main(void)
{
file();
getch();
return 0;
}
[解决办法]
++