没有实际数据文件,没法实际调试。分析一下,很可能是结构体大小的问题。你的结构体A,通过sizeof得到的大小是36(按8取整)字节,而不是实际使用的10+4+4+15=33字节。也就是你的文件stu.dat至少要36*9=334字节才不会越界访问。(虽然循环是每次+2一共5次,但最后一次是i=8,seek到第8*36字节再读取36字节)根据这个检查一下吧,其它地方目测没发现问题。