【发布时间】:2013-11-14 08:26:35
【问题描述】:
我可以编译我的代码,但是当我尝试运行它时,我得到了这个错误:
这可能是由于堆损坏,这表明 .exe 文件或其已加载的任何 DLL 中存在错误
我试图调试它,但奇怪的是,我把断点放在哪里都没有关系,我再次得到这个错误:(
有谁知道问题出在哪里?
在得到一些建议后,我清理了代码并且它工作了,但现在我正在努力解决一个新的内存分配错误:
#define CV_HOUGH_GRADIENT 3;
Mat Valv;
if( sumValv[0] > sumValv[0]){
vector<Vec3f> circles;
HoughCircles( Valv, circles, 3 , 1, Valv.rows/8, 200, 100, 0, 0 );
}
我正在使用 opencv 库,我将使用 HoughCircles 函数检测图像中的圆圈。 我在 HoughCircles 行中收到错误...内存分配错误:( 不知道是什么原因...
【问题讨论】:
-
请确保在退出程序之前清理所有程序堆内存
-
除了 ComicSansMS 给出的好建议之外,您是否在应用程序中使用了任何 dll?如果是这样,请确保它们都是使用 Visual Studio 2010 编译的,并且您没有混合调试和发布。我的意思是在调试应用程序中使用 Release dll 也很糟糕,反之亦然。
-
@Subhajit:谢谢,我清理了代码,现在可以使用了 :)
-
@user2758510 请注意,如果您确实遇到了堆损坏,您的更改可能只是掩盖了问题。您应该花一些时间来确保您的代码中没有任何无效的堆操作。
-
@ComicSansMS:你完全正确..似乎问题远不止于此!我将重新编辑我的问题。
标签: c++ visual-studio-2010 opencv image-processing