Debug
问题很简单,就是跑程序遇到“malloc(): memory corruption 已放弃(核心转存储)”,其它的啥信息都没有。然后通过std::cout
打印确定了出错的位置,但死活没看出问题,连蒙带猜地瞎改也没用。最后在师兄的启发下,开始通过注释来确定错误位置,成功解决。
问题出在std::fill_n
赋值的时候越界了,但通过std::cout
确定的位置却是另一段完全不相关的代码。以前这种问题基本都是通过std::cout
确定位置,然后着重检查有没有溢出,越界啥的,这次完全没得用,白废了许多力气。网上也搜到一篇强调出现该错误不要局限于当前代码,但是自己完全没有重视,在此记录以下。