作者Vvvahc (我来搞事了)
看板C_and_CPP
标题[问题] 从主程式移出函数遇到exception thrown
时间Tue Jan 25 10:19:30 2022
各位大大好
我最近在使用opencv套件时遇到exception thrown的问题
原本可编译执行程式码如下
int main (int argc,char*argv[ ])
{
……
cv::Mat cv_image(cv::size(1024,1024), cv_16UC1, imgBuffer_ptr, cv::Mat::AU
TO_STEP);
cv:: nameWindow(" " , 1);
imshow(" ",cv_image);
waitKey(20);
……
}
其中imgBuffer_ptr资料型态是Word*
指向sdk提供的相机储存图片的位址
但当我只是改成这样
cv::Mat cvshow(WORD*addbuffer)
{
cv::Mat cv_image(cv::size(1024,1024), cv_16UC1, addbuffer, cv::Mat::AU
TO_STEP);
cv:: nameWindow(" " , 1);
imshow(" ",cv_image);
waitKey(20);
}
int main(int argc,char*argv[ ]) {
……
cvshow( imgBuffer_ptr);
……
}
执行後就会跳出c++ exception at memory location的error
想请问各位,我该如何改掉这错误啊?
第一直觉是ptr的问题… 但又不懂错在哪
谢谢~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.136.5.5 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1643077172.A.081.html
※ 编辑: Vvvahc (114.136.5.5 台湾), 01/25/2022 10:19:54
※ 编辑: Vvvahc (140.112.174.64 台湾), 01/25/2022 10:21:22
1F:推 lylu: 你传入的addbuffer没有用到 function里面还是用imgBuffer_01/25 10:49
2F:→ lylu: ptr?01/25 10:49
※ 编辑: Vvvahc (140.112.174.64 台湾), 01/25/2022 11:08:02
3F:→ Vvvahc: 我function内是用addbuffer才对,用手机编辑没注意到XD 01/25 11:10
4F:→ Vvvahc: 已改正 01/25 11:10
5F:→ Vvvahc: 不过还是不知道错在哪( _ ) 01/25 11:17
6F:→ flyfoxy: cvshow() return ? 01/25 12:38
7F:推 lycantrope: 没return cv::Mat 或是改成void? 01/25 12:48
8F:→ closer76: 你的 imgBuffer_ptr 是怎麽宣告的?空间是如何配置的? 01/25 12:50
9F:→ closer76: 另外,是全域还是区域变数? 01/25 12:50
10F:→ Vvvahc: return我等下来试试 void我昨天有试过也是不能… 01/25 14:33
11F:→ Vvvahc: imgBuffer_ptr 是我宣告word*imgBuffer_ptr 後,丢到sdk 01/25 14:34
12F:→ Vvvahc: 提供的copy function去得到指标位址 01/25 14:34
13F:→ Vvvahc: 我是设定成区域变数 01/25 14:35
14F:→ henrylin8086: 你没有return编译得过去吗 01/26 23:12
15F:推 henrylin8086: 我只是好奇,我记得VS很聪明非void没return会跳红字 01/26 23:16
16F:推 henrylin8086: 程式码你可能需要提供更完整一些 01/26 23:22
17F:→ henrylin8086: 我稍看一下没有看到有什麽语法逻辑错误 01/26 23:22
18F:→ Vvvahc: 感谢h大的站内信 01/28 17:20
19F:→ Vvvahc: 这边更新一下,mat要用return才能编译 (会不会成功执行是另 01/28 17:20
20F:→ Vvvahc: 一回事…) 01/28 17:20