这是导致内存泄漏?

this is lead to memory leak?

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

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 和 return Image 的地址(它的指针)。 我知道这种情况会导致内存泄漏。 如果不是,我认为 IplImage 结构有一个在程序运行时动态更新的地址列表。

我不太了解您使用的这些功能的细节。但是,根据您的描述,似乎所有这些都是 returning 指向 IplImage.

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

请注意,第二次和第三次调用使用的是第一次调用 return 的指针。如果这些函数只是 return 修改后的指针,那么它不是内存泄漏(如果您在使用结束时删除该指针)。但是,如果它们是 returning 新指针,那么这肯定是内存泄漏。