使用cvGetSubRect时注意:不需要为cvMat申请内存!!!
实际上它会把源数据中的内存值直接付给这个cvMat的数据指针。如果事先申请了内存,调用cvGetSubRect的结果就是把原来申请的数据空间指针给覆盖了,程序就会丢失这个已经申请的内存区域的地址(内存泄露的产生);此时如果去释放这个cvMat,实际上是释放的cvMat的Header和源数据的相应空间,把源数据给消灭了(更惨)。
本文介绍了使用cvGetSubRect时应注意的问题,强调了该函数会直接指向源数据的内存,因此无需预先分配内存给cvMat。如果提前分配内存,则可能会导致内存泄漏或错误地释放源数据。
使用cvGetSubRect时注意:不需要为cvMat申请内存!!!
实际上它会把源数据中的内存值直接付给这个cvMat的数据指针。如果事先申请了内存,调用cvGetSubRect的结果就是把原来申请的数据空间指针给覆盖了,程序就会丢失这个已经申请的内存区域的地址(内存泄露的产生);此时如果去释放这个cvMat,实际上是释放的cvMat的Header和源数据的相应空间,把源数据给消灭了(更惨)。
156

被折叠的 条评论
为什么被折叠?