我理解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帧的内存是否被覆盖?
在本例中,VideoCapture
更新了frame
,没有创建Mat
的新副本。Mat
在每次迭代中被覆盖