求C高手!!!

来源:百度知道 编辑:UC知道 时间:2024/07/02 11:18:35
我在用C编写一个学分绩点计算器时编写的代码如下:
#include <stdio.h>
#define SIZE 13
struct xbp
{char name[13];
float m;
}stud[SIZE];
void main ()
{int i;
FILE*fp;
fp=fopen("xbp","r");
for(i=0;i<SIZE;i++)
{fread(&stud[i],sizeof(struct xbp),1,fp);
printf("%d\n",stud[i].name,stud[i].m);
}
fclose (fp);
}

其中xbp文件的内容为:
工程制图(二)学分绩点为:9.45
金工实习(冷)学分绩点为:2.5
中国近现代史纲要学分绩点为:5.0
思想道德修养与法律基础学分绩点为:0.00
大学英语读写译1学分绩点为:7.25
大学英语视听说1学分绩点为:0.00
高等数学1学分绩点为:12.00
高等数学2学分绩点为:7.2
线性代数学分绩点为:7.25
普通体育1学分绩点为:3.75
大学计算机基础(一)学分绩点为:7.8
军事理论学分绩点为:3.5
军事训练学分绩点为:2.5

为什么调试显示没有错误但是在运行的时候确提示0x0040127c指令引用的0x0000000c内存。该内存不能为read?
求高手解答指点

sizeof(xbp) = 13+4 = 17

也就是说你每次读取17个BYTE

从文件开始 第一次读取到

工程制图(二)学分
12345678901234567

读到分到一半

SO 。。。。

你这么读不出错才真的见鬼了,呵呵。

程序没问题,可能是你的电脑系统或者是电脑硬件有问题,有可能是你的内存有问题。