VS调试 C++工程 ,提示需要查找.cpp已确定当前调用堆栈帧,同时报错内存访问冲突

img


此工程调用了一动态链接库,在运行至其中一函数的调用时报此错误;
报错需要查找的.cpp文件工程内并未添加,也从未提到。
该链接库释放者提供的示例工程可以正常调用库,想请问有没有什么尝试的思路,看我的工程有什么问题。

gc_4cell_init(RMargs);
// in_a是输入4C raw图
unsigned short* in_a = (unsigned short*)malloc(sizeof(unsigned short) * (4208 * 3120));
// out_a是输出bayer raw图
unsigned short* out_a = (unsigned short*)malloc(sizeof(unsigned short) * (4208 * 3120));

FILE* fp1 = fopen("in.raw", "rb");
if (fp1) {
    fread(in_a, 4208 * 3120, 2, fp1);
    fclose(fp1);
}
else {
    AfxMessageBox("Cannot open INPUT RAW file for read!\n");
}
fp1 = fopen("out.raw", "wb");

gc_4cell_top(in_a, out_a, RMargs);  // 调用此函数时,发生报错
// 释放空间
gc_4cell_uninit();

free(in_a);
free(out_a);

这个报错很可能是数组越界导致的。但是当前代码看着是没什么问题的。建议看一下 gc_4cell_top()这个函数的输入参数说明,看看输入的参数是否符合接口要求。
感觉问题可能是出在fread(in_a, 4208 * 3120, 2, fp1);这里。你检查一下你的文件格式,这么读出来的数据不一定正确。你打印一部分数据检验一下读取是否正确。

我很少用windows vs,我的理解是,可以试试:
设置断点,单步调试跟着走一下,看看挂在哪里,或者走不下去的时候,需要加载一些pdb文件和源文件吧 ,就可以看到信息。。。

具体操作和加载什么pdb和源文件,怎么加,可以百度。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632