一般情况下是数组越界访问或者数组的下标错误造成的。
今天刷题时遇到这个错误死活找不到原因,因为发现就是数组越界了。
while(f[i]&&i<n)i++;这种写法是错误的,最后i到n了会先访问f[i]引起错误。所以遇到这种循环判断的越界条件一定要放在最开头。
这种小错误都犯了,这题还是得经常刷一段时间不写都忘了。
参考:
https://stackoverflow.com/questions/51579267/addresssanitizer-heap-buffer-overflow-on-address
本文深入探讨了数组越界访问的问题,特别是在while循环中常见的错误写法。通过具体案例解析,强调了判断条件放置的重要性,避免因数组越界导致的运行时错误。
206

被折叠的 条评论
为什么被折叠?



