您的位置:首页 > 运维架构

C及opencv指针释放问题

2018-03-13 15:24 155 查看
    一个图像处理的项目运行时没有问题,最后关掉显示的图片时提醒触发一个断点,点击继续则出现以下画面:



断点停留在释放指针的那一行。究其原因如下:
1.错用free释放IplImage*IplImage* input = cvLoadImage("data/LOGO/2_1.jpg");//待测图
IplImage* test = cvLoadImage("data/LOGO/1_1.jpg"); //基准图
free(input);
free(test);
   IplImage*是opencv里面用于存储图像的结构,不能用free来释放。应该如下:cvReleaseImage(&input);
cvReleaseImage(&test);2、malloc与free不对应unsigned char* colors1 = (unsigned char*)input->imageData;
unsigned char* colors2 = (unsigned char*)test->imageData;
free(colors1);
free(colors2);
 一个malloc对应一个free,而上述指针不是用malloc申请的动态内存空间,所以不能用free去释放。但怎么处理不知道,先注释掉了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: