使用std :: vector和内存释放

时间:2014-04-30 05:51:31

标签: c++ opencv vector

我使用std::vector<CvPoint>来存储视频片段的边缘。

std::vector<CvPoint> vPt= floodfill(cvPoint(x,y), 255,  0, iplEdgeCpy, 100);

处理边缘时,我调用swap方法释放内存。

vector<CvPoint>().swap(myVector);

但是,内存仍未发布。它表明我的进程使用的内存量增加了。

任何人都可以帮助我或给我一些建议吗?

1 个答案:

答案 0 :(得分:1)

取决于您的操作系统。在大多数操作系统下,该流程并未给出&#34;发布&#34;释放内存,它在一个空闲列表中挂起它,这样如果进程想要分配更多内存,它就已经拥有它并且不必去操作系统。

你如何测量内存大小?如果您担心泄漏,那么像valgrind这样的工具比查看进程的内存量更有用。