调试c代码时出现缓冲区溢出问题
除此之外还有3个数据块调试c代码时出现缓冲区溢出问题,c,C,除此之外还有3个数据块 感谢您的帮助您定义了整数分数[12][MAX_BASE]在structSKATER中。但您可以这样扫描: PLUSHENKO Evgeni 1 13.0 0 2 1 1 1 0 1 0 1 1 1 1 2 7.5 1 2 2 2 2 1 2 1 2 2 2 2 3 6.0 2 1 1 1 1 0 0 2 1 2 1 2 4 2.3 2 1 1 1 1 1 2 1 1 1 1 1 5 3.4 2 2 2 2 1 2 3 3 2 3 2 1 6 2.1 1 1 1 2 2
感谢您的帮助您定义了
整数分数[12][MAX_BASE]代码>在structSKATER
中。但您可以这样扫描:
PLUSHENKO Evgeni
1 13.0 0 2 1 1 1 0 1 0 1 1 1 1
2 7.5 1 2 2 2 2 1 2 1 2 2 2 2
3 6.0 2 1 1 1 1 0 0 2 1 2 1 2
4 2.3 2 1 1 1 1 1 2 1 1 1 1 1
5 3.4 2 2 2 2 1 2 3 3 2 3 2 1
6 2.1 1 1 1 2 2 0 0 0 1 2 1 1
7 3.1 1 0 2 2 1 1 1 2 2 2 2 1
8 3.5 1 1 2 2 1 1 1 1 2 2 1 1
(j=0;j<12;j++)的
{
sscanf(缓冲区,“%d”,滑冰者[i]。得分[k][j];
}
索引错误。应更改为sscanf(缓冲区,“%d”,&skater[i]。分数[j][k]代码>并且不要错过&
sscanf(缓冲区,“%d”,&skater[i]。元素,skater[i]。baseval)代码>更改为sscanf(缓冲区,“%d%f”,&skater[i]。元素,skater[i]。baseval)代码>
我想你需要阅读。需要把要点转到sscanf
祝你好运 看起来像sscanf(缓冲区,“%d”,skater[i]。分数[k][j])代码>应该是sscanf(缓冲区、%d“,&skater[i]。分数[k][j])代码>(您缺少一个&
)。我不确定该程序的功能。但正如@DCoder所说,当您添加miss-the-missing&everywhere时,程序正常运行
PLUSHENKO Evgeni
1 13.0 0 2 1 1 1 0 1 0 1 1 1 1
2 7.5 1 2 2 2 2 1 2 1 2 2 2 2
3 6.0 2 1 1 1 1 0 0 2 1 2 1 2
4 2.3 2 1 1 1 1 1 2 1 1 1 1 1
5 3.4 2 2 2 2 1 2 3 3 2 3 2 1
6 2.1 1 1 1 2 2 0 0 0 1 2 1 1
7 3.1 1 0 2 2 1 1 1 2 2 2 2 1
8 3.5 1 1 2 2 1 1 1 1 2 2 1 1
for(j = 0; j < 12; j++)
{
sscanf(buffer,"%d", skater[i].score[k][j]);
}