您当前的位置:首页 > 计算机 > 编程开发 > VC/VC++

C++ abort() has been called错误

时间:02-28来源:作者:点击数:

程序可以成功编译,说明没有语法问题,应是代码内部的问题,报错如下:

在这里插入图片描述

abort() has been called:中止被调用,该错误出现有很多原因,查询了多条博客后,发现有网友总结了几条原因和解决办法,谢谢网友,借网友的思路成功解决问题。

原因:

1.非法指针访问和内存泄漏

2.设置的指针范围跟你运行的不对

3.指针访问内存越界出现问题。

4.因为不支持中文。

5.内存不够分配

6.多线程访问资源出的问题。

7.检查exe和dll是否混用的不同版本的crt

办法:

第一:检查申请的空间没有释放

第二:检查堆栈空间是否已经被全部分配满,建议每次内存分配尽量不要太大,并且记得释放

第三:指针指向了不可预期的内存位置

问题分析:

继上面某篇关于小孔定位的博客,使用三点法定位圆心,将轮廓点均分为3份,每份上取一点,没有错误。为了避免孔轮廓外点的干扰,循环取3次,最后求出均值作为结果,然后偶尔会出现如上错误。

通过不断代码分块调试,很快定位到问题的出处,当第3次循环时,第3点极有可能超出点总数。

问题解决:

将轮廓点均分为4份,在前3份上取3点,当第3次循环时,第3点最大也只是在第4份上,不会超出轮廓总数。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门