这是导致内存泄漏?

时间:2015-01-08 11:52:28

标签: c opencv memory-leaks

我希望有人能回答我的问题并澄清细节。

IplImage* out;
out = doPyrDown( in, IPL_GAUSSIAN_5x5 );
out = doPyrDown( out, IPL_GAUSSIAN_5x5 );
out = doCanny( out, 10, 100, 3 );
 // do whatever with ‘out’
//
...
cvReleaseImage ( &out );

我在阅读学习opencv这不是问题。怎么样好? 每个方法doPyrnDown& doCanny分配Image并返回Image的地址(它的指针)。 我知道这种情况会导致内存泄漏。 如果不是,我认为IplImage结构有一个在程序运行期间动态更新的地址列表。

1 个答案:

答案 0 :(得分:0)

我不太了解您正在使用的这些功能的详细信息。但是,根据您的描述,似乎所有这些都返回指向IplImage

的指针
out = doPyrDown( in, IPL_GAUSSIAN_5x5 );
out = doPyrDown( out, IPL_GAUSSIAN_5x5 );
out = doCanny( out, 10, 100, 3 );

请注意,第二次和第三次调用正在使用第一次调用返回的指针。如果这些函数只返回修改后的指针,那么它就不是内存泄漏(如果你在它的使用结束时删除了那个指针)。但是,如果他们返回新的指针,那么这肯定是镜头内存泄漏。