CvSeq 的内存释放问题

Key Words: OpenCV, cvSeq, cvReleaseMemStorage

CvSeq 是OpenCV里动态结构中的一种非常重要的类型,主要由sequence header和sequence data组成。cvCreateSeq( int seq_flags, int header_size, int elem_size, CvMemStorage* storage )是创建该对象的函数。为了在使用完cvSeq后释放其占用的内存,我一直去找和cvCreateSeq向对应的"cvReleaseSeq"函数,但实 际上没有这么个函数。相近的函数cvClearSeq()是清空cvSeq的数据,但并不释放其占用的内存,在下一次使用该对象的时候采用内存复用。看了 一下CvSeq结构体的内部结构后, 感觉正确的释放方法应该是

cvReleaseMemStorage(  & mySeq -> storage );
 
malloc(): invalid next->prev_inuse (unsorted) Thread 26 "stitch_sys.out" received signal SIGABRT, Aborted. [Switching to Thread 0x7fb61cd960 (LWP 7583)] __pthread_kill_implementation (threadid=548516190560, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44 44 ./nptl/pthread_kill.c: No such file or directory. (gdb) bt #0 __pthread_kill_implementation (threadid=548516190560, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44 #1 0x0000007ff6cef254 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78 #2 0x0000007ff6caa67c in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #3 0x0000007ff6c97130 in __GI_abort () at ./stdlib/abort.c:79 #4 0x0000007ff6ce3308 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ff6dc43b8 "%s\n") at ../sysdeps/posix/libc_fatal.c:155 #5 0x0000007ff6cf957c in malloc_printerr (str=str@entry=0x7ff6dbfcc0 "malloc(): invalid next->prev_inuse (unsorted)") at ./malloc/malloc.c:5664 #6 0x0000007ff6cfca84 in _int_malloc (av=av@entry=0x7fac000030, bytes=bytes@entry=11059272) at ./malloc/malloc.c:4012 #7 0x0000007ff6cfd6dc in __GI___libc_malloc (bytes=11059272) at ./malloc/malloc.c:3329 #8 0x0000007ff7b27618 in cv::fastMalloc(unsigned long) () from /usr/lib/opencv4.5.4/libopencv_core.so.4.5 #9 0x0000007ff7c2b78c in cv::Mat::create(int, int const*, int) () from /usr/lib/opencv4.5.4/libopencv_core.so.4.5 #10 0x0000007ff7c2bb3c in cv::Mat::create(int, int, int) () from /usr/lib/opencv4.5.4/libopencv_core.so.4.5 #11 0x0000007ff7b8efcc in cv::Mat::copyTo(cv::_OutputArray const&) const () from /usr/lib/opencv4.5.4/libopencv_core.so.4.5 #12 0x0000007ff7c2b2a8 in cv::Mat::clone() const () from /usr/lib/opencv4.5.4/libopencv_core.so.4.5
最新发布
09-16
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值