我理解Mat a = b只是将b的引用复制到a,没有分配单独的内存。
但是在下面的代码中:
VideoCapture cap(0);
Mat frame;
for(i = 0; i<10; i++)
cap.read(frame);
在每次迭代中,Mat变量都会更新。这是否意味着在每个循环中分配新内存。如果是这样,之前分配的内存会发生什么?它被摧毁了吗?在10次迭代结束时,系统中使用的内存是否等于10 * sizeof(Mat),或者是每次更新A时分配给Mat帧的内存是否被覆盖?
答案 0 :(得分:2)
在这种情况下,VideoCapture
会更新frame
,并且不会创建Mat
的新副本。每次迭代都会覆盖Mat
。