使用 std::vector 和内存释放
Posted
技术标签:
【中文标题】使用 std::vector 和内存释放【英文标题】:use std::vector and memory release 【发布时间】:2014-04-30 05:51:31 【问题描述】:我正在使用std::vector<CvPoint>
来存储视频剪辑的边缘。
std::vector<CvPoint> vPt= floodfill(cvPoint(x,y), 255, 0, iplEdgeCpy, 100);
边缘处理完毕后,我调用swap方法释放内存。
vector<CvPoint>().swap(myVector);
但是,内存仍然没有释放。它表明我的进程使用的内存量增加了。
谁能帮助我或给我一些建议?
【问题讨论】:
您的代码甚至不应该编译。 floodFill 没有返回向量。而且它的所有输入参数也不合适。 【参考方案1】:取决于您的操作系统。在大多数操作系统下,进程不会“释放”已释放的内存,它会挂在空闲列表中,因此如果进程想要分配更多内存,它已经拥有它并且不必去操作系统.
您如何测量内存大小?如果您担心泄漏,那么像 valgrind 这样的工具比只查看进程的内存量更有用。
【讨论】:
感谢您的回复。我将尝试使用 valgrind 来测试我的进程中的内存泄漏。以上是关于使用 std::vector 和内存释放的主要内容,如果未能解决你的问题,请参考以下文章