在我的项目中,我使用CvPoint2D64f *函数手动存储棋盘图像的角落。现在由于未释放内存而导致内存泄漏错误。我尝试了两个免费(角落)和 删除[] Corners.But 11小时后它给出了相同的内存泄漏错误。我有一个混乱。哪一个是正确的释放内存的方法?
int main()
{
CvPoint2D64f* Corners = 0;
Corners = new CvPoint2D64f[25];
......
free(Corners);
return;
}
我使用了opencv 2.1的c库
提前致谢..
答案 0 :(得分:4)
如果你希望它是'C',你就不能使用'new',那必须是:
Corners = (CvPoint2D64f*) malloc(25 * sizeof(CvPoint2D64f));
...
free(Corners);
但老实说,你的问题是由于使用了过时的版本(2.1)和过时的api(c)
那些手动内存管理问题是opencv开发人员切换到c ++的主要原因。