C语言下使用OpenCV接口崩溃问题求助

代码很简单,就是引入一张图片然后裁剪,得到ROI区域。我主要用来测试相关函数是否可以在C文件下使用。

 #include<cv.h>  
#include<cxcore.h>  
#include<highgui.h>  
#include <stdio.h>
#include <stdlib.h> 
void main()
{
    IplImage *res, *dst;
    CvRect rect;
    rect.x = 10, rect.y = 10, rect.width = 100, rect.height = 100;
    res = cvLoadImage("E:/search/week5-yolov2/darknet-master(1)/darknet-master/yolo-face-master/000001.jpg");//载入一张图片  
    dst = cvCreateImage(cvSize(100, 100), 8, 3);//创建图像空间  

                                                //创建窗口  
    cvNamedWindow("res", CV_WINDOW_AUTOSIZE);
    cvNamedWindow("dst", CV_WINDOW_AUTOSIZE);

    //设置ROI区域  
    cvSetImageROI(res, rect);
    printf("OK");
    //提取ROI  
    cvCopy(res, dst,NULL);

    //取消设置  
    cvResetImageROI(res);

    //显示图像  
    cvShowImage("res", res);
    cvShowImage("dst", dst);
    cvWaitKey(0);

    cvDestroyWindow("res");
    cvDestroyWindow("dst");

    cvReleaseImage(&res);
    cvReleaseImage(&dst);
}

问题是,如果我用C语言编译,可以通过,但是运行时刻会崩溃,但是我想不通哪里会出现内存泄漏或者其他方面的问题?
使用C++编译器编译,通过且运行成功。
烦请各位赐教,多谢。
补充:
经过各位提醒,调试后的报错信息如下:
图片说明
图片说明

可能是其他的问题吧,也许是运行问题

把cvReleaseImage放在cvDestroyWindow前面试试,应该是顺序上的问题

调试具体报错是啥错呢?是不是调用顺序相关的问题?

cvWaitKey(0);之前能否正常运行,一部分一部分的排查,有可能是release和destroy顺序

IplImage 类的两个对象都是用的堆缓冲,使用C++,在作用域结束的时候,自动调用析构函数释放内存了。而使用C编译器可没这特性。

是不是因为你创建IplImage 两个变量的时候没有给它指为NULL?或许存在这种问题

想问 楼主的 opencv 是哪个版本啊

我是 3.2 用.c编译都会报错