opencv代码很简单就是读取显示一张图片,点击调试能正常显示图片。
并且用鼠标直接点击停止调试时不会发生以下异常中断:
当按键盘ESC就发生如上图异常中断,错误代码是:0x00007FFA28D32510 (ntdll.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000000000000010 时发生访问冲突。
再次,向各位大佬求助攻谢谢!!!!!!!!!!!
如果按ESC要报错,在最后加destroyAllWindows();关闭窗口就行了
读取位置 0x0000000000000010明显是你有一个指针是NULL没有初始化,你直接在上面+0x10就访问了,具体你要看你第二个截图对应的调用堆栈,找到上一层你的代码,然后仔细检查下每个指针变量。
我也遇到了跟你一样的问题:ntdll.dll,0x5错误,读取位置0x10时发生访问冲突
程序正常运行完成,到析构阶段报错,最后检查到发现:
UMat需手动释放->UMat.release();
手动释放后错误消除。
正常来说Mat不需要手动release(); 会被自动释放。
所以我UMat也就没release(),但是UMat调用了opencl,涉及到GPU,故而可能比较特殊,需要手动释放。