C语言 随机读写的一道例题 出错 求帮看下

2025-03-04 15:36:42
推荐回答(1个)
回答1:

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