R6010 -abort() has been called错误分析及其解决方法
前言
调试代码的过程中经常会遇到R6010 -abort() has been called的错误,在此,分析一下该问题.
错误的表现形式:
导致出现这样的原因有:
1.非法指针访问和内存泄漏;
2.大家再查查吧,一定是指针出现问题了。设置的指针范围跟你运行的不对;
3.指针访问内存越界出现问题;
4.是因为不支持中文;
5.内存不够分配;
6.当时后来检查发现的问题应该是多线程访问资源出的问题;
7.检查一下exe和dll是否混用的不同版本的crt;
解决方法:
第一:检查申请的空间没有释放;
第二:检查堆栈空间是否已经被全部分配满,建议每次内存分配尽量不要太大,并且记得释放;
第三:指针指向了不可预期的内存位置;
针对我的问题,
发现在以下代码处出现错误:
features(temp, feature);
而这个函数的声明是:
extern void features(const Mat& image, Mat& features);
原因:
程序中已经声明定义了全局变量image,且有一小段运行过程中对image变量使用了互斥锁,多个线程会用到image变量,而出现问题的features函数中多次使用到image这个变量,所以出错;
解决方法:
将features函数中使用到image变量的地方,使用其他的变量名称即可;
还有一个原因是,
代码中的变量数据有问题,比如,函数输入应为彩色RGB图像,但是之前使用的灰度图像,忘记将灰度化部分去除,因此出现错误。
参考
1.http://www.2cto.com/kf/201503/382523.html
完
各美其美,美美与共,不和他人作比较,不对他人有期待,不批判他人,不钻牛角尖。
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步