我正在为游戏中的多个对象使用 OpenCV 2 的 cv::Mat 结构。有时这些是直接传递的,有时是通过cv::Mat*
指针传递的,例如当一个对象需要修改另一个对象的 cv::Mat 时。我习惯于自己管理内存,但我知道 cv::Mat 使用引用计数。大部分时间似乎一切正常,但偶尔我会在 Xcode 的调试模式下运行以下错误:
malloc: *** error for object 0x3000000000000000: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
当我将两个 cv::Mats 传递给一个函数时会发生这种情况,如下所示:
Find(this->fillShape, shape->fillShape)
不过,每次我跑过这条线时都不会发生这个错误。我该如何调试呢?