cvReleaseImage()函数说明

IplImage *tmp = NULL;

这一句话定义了一个IplImage类型的指针变量tmp,这个指针变量在内存中的示意图为:

tmp = cvLoadImage(file_path);

这句话执行以后,内存的布局就改变了:

cvReleaseImage(&tmp);

这句话执行之后,操作系统释放tmp指针指向的图像的存储空间,同时将IplImage类型的指针变量的值置为NULL。也就是说这个图像在内存中的存储空间已经被操作系统回收了,同时置tmp的值为NULL。

注意:
如果同一幅图像,被载入内存空间,释放之后,再次载入内存空间,载入到的内存的位置可能跟上次是相同的,也可能是不相同的。这个结果跟操作系统的内存分配策略有关,同时跟其他的程序有关。比如说你释放的一刹那,这块内存分配给了其他的应用程序,那么再次分配不可能在同一个地址。当然也有可能两次内存的分配在同一块内存地址。

原文地址:https://www.cnblogs.com/stemon/p/5037286.html