首页 > 解决方案 > VimbaCPP 内存泄漏

问题描述

我目前正在 Qt 中使用 Vimba SDK 建立一个项目。

我遵循 Vimbas 示例代码,但在捕获图像时发现内存使用量随时间缓慢增加,并发现以下行我认为导致此问题:

void AlliedVisionCameras::grabImage(cv::Mat &image){

    FramePtr rpFrame;
    VmbErrorType res;
    uchar* pBuffer;

    m_pCamera->Open(VmbAccessModeFull);
    m_pCamera->AcquireSingleImage( rpFrame, 2000 );
    rpFrame->GetImage(pBuffer);

    image = cv::Mat(m_nHeight,m_nWidth,CV_8UC1,pBuffer) 
}

我很确定它是因为 pBuffer 因为它永远不会被删除但如果我使用

uchar* pBuffer = new uchar;
.
.
delete pBuffer;

相反,我的程序崩溃了。我真的不知道如何释放指针变量并且使用 SmartPointer 不起作用,因为 getImage()-Function 无法处理它。

有人有想法吗?我在这里先向您的帮助表示感谢。

标签: c++pointersmemory-leaks

解决方案


推荐阅读