我正在使用 std::vector<CvPoint>
存储视频剪辑的边缘。
std::vector<CvPoint> vPt= floodfill(cvPoint(x,y), 255, 0, iplEdgeCpy, 100);
当边缘被处理时,我正在调用 swap 方法来释放内存。
vector<CvPoint>().swap(myVector);
但是,内存还是没有释放。它表明我的进程正在使用的内存量增加了。
有谁可以帮助我或给我一些建议吗?
最佳答案
取决于您的操作系统。在大多数操作系统下,进程不会“释放”释放的内存,它会卡在空闲列表中,这样如果进程想要分配更多内存,它已经拥有它并且不必去操作系统.
您如何测量内存大小?如果您担心泄漏,那么像 valgrind 这样的工具比只查看进程的内存量更有用。
关于c++ - 使用 std::vector 和内存释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23380594/