gpt4 book ai didi

c++ - OpenCV Mat 中的动态内存释放错误

转载 作者:行者123 更新时间:2023-11-28 02:09:29 25 4
gpt4 key购买 nike

我想知道 OpenCV Mat 默认构造函数是否已经分配了内存?如文件所示

>     These are various constructors that form a matrix. As noted in the Automatic Allocation of the Output Data, often the default constructor
> is enough, and the proper matrix will be allocated by an OpenCV
> function.

这是否意味着在我的程序结束时发生的释放是正确的。那是对的吗?

实际上,我在程序结束时的内存释放阶段遇到了(核心转储)错误。我的初始代码引入了一个 OpenCV Mat,即 Mat A,但没有对其进行初始化,这会产生错误。我通过使用初始化修复了这个错误,即 A = Mat::zeros(...)

我想证实一下我之前的疑问。如果是真的,每次声明Mat都要初始化,很不方便

对不起我的错误解释!如果我不够清楚,请回复我

最佳答案

Does this mean that the deallocation happening at the end of my program is proper. Is that correct?

cv::Mat 自行分配内存,并在共享相同数据的所有 cv::Mat 超出范围时释放内存(类似于 std::shared_ptr).

I want to confirm my previous doubt. If it is true, it is quite inconvenient to have to initialize Mat every time it is declared

不,这是错误的。但是,由于您没有显示代码,我只能猜测您没有正确地将 OpenCV 链接到您的项目,因为众所周知,链接不当的 OpenCV 在 cv::Mat 处导致错误破坏阶段。

关于c++ - OpenCV Mat 中的动态内存释放错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36258289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com