多谢回复!
1,对于你上面的代码,你检测出何等错误信息?
直接在调试器中运行上述代码,结果如下:- Detected memory leaks!
- Dumping objects ->
- {489} normal block at 0x0000000001F7BA80, 128 bytes long.
- Data: <p LY > 70 05 4C 59 00 00 00 00 D0 B5 F7 01 00 00 00 00
- {488} normal block at 0x0000000001F7B9F0, 32 bytes long.
- Data: <@ > 40 B5 F7 01 00 00 00 00 CD CD CD CD CD CD CD CD
- {487} normal block at 0x0000000001F7B950, 56 bytes long.
- Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- {486} normal block at 0x0000000001F7B790, 336 bytes long.
- Data: <h LY > 68 01 4C 59 00 00 00 00 CD CD CD CD CD CD CD CD
- {485} normal block at 0x0000000001F7B6A0, 128 bytes long.
- Data: <p LY > 70 05 4C 59 00 00 00 00 D0 B5 F7 01 00 00 00 00
- {484} normal block at 0x0000000001F7B5D0, 96 bytes long.
- Data: < LY > C8 04 4C 59 00 00 00 00 1B 00 00 00 CD CD CD CD
- {483} normal block at 0x0000000001F7B540, 32 bytes long.
- Data: < > 00 00 00 00 00 00 00 00 CD CD CD CD CD CD CD CD
- {482} normal block at 0x0000000001F7B4A0, 56 bytes long.
- Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- {481} normal block at 0x0000000002008DD0, 336 bytes long.
- Data: <h LY > 68 01 4C 59 00 00 00 00 CD CD CD CD CD CD CD CD
- {479} normal block at 0x0000000001F7AF00, 512 bytes long.
- Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
- {478} normal block at 0x0000000002008B60, 512 bytes long.
- Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- {477} normal block at 0x0000000002008A20, 208 bytes long.
- Data: < ? > 02 00 00 00 02 00 00 00 3F 00 00 00 CD CD CD CD
- {475} normal block at 0x00000000020085C0, 568 bytes long.
- Data: < > 00 00 02 00 02 00 00 00 F8 00 00 00 00 00 00 00
- {474} normal block at 0x0000000001F740E0, 24 bytes long.
- Data: < > 00 00 00 00 00 00 00 00 F4 00 00 00 00 00 00 00
- {473} normal block at 0x0000000002008510, 64 bytes long.
- Data: < > 00 00 00 00 CD CD CD CD CD CD CD CD CD CD CD CD
- {472} normal block at 0x0000000002008470, 56 bytes long.
- Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- {470} normal block at 0x0000000002007FE0, 240 bytes long.
- Data: < KY > B8 8B 4B 59 00 00 00 00 CD CD CD CD CD CD CD CD
- {469} normal block at 0x0000000001FFFF70, 32776 bytes long.
- Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- {468} normal block at 0x00000000023BE9F0, 16 bytes long.
- Data: < p > 01 10 00 00 01 00 00 00 70 FF FF 01 00 00 00 00
- {467} normal block at 0x0000000001F7AC90, 512 bytes long.
- Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- {466} normal block at 0x0000000001F7AB10, 272 bytes long.
- Data: < LY > 08 09 4C 59 00 00 00 00 01 00 00 00 CD CD CD CD
- {465} normal block at 0x0000000001F7A8A0, 512 bytes long.
- Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- {464} normal block at 0x0000000001F7A720, 272 bytes long.
- Data: < LY > 08 09 4C 59 00 00 00 00 01 00 00 00 CD CD CD CD
- {463} normal block at 0x0000000001F7A4B0, 512 bytes long.
- Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- {462} normal block at 0x0000000001F7A330, 272 bytes long.
- Data: < LY > 08 09 4C 59 00 00 00 00 00 00 00 00 CD CD CD CD
- {461} normal block at 0x0000000001FFFD00, 512 bytes long.
- Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- {460} normal block at 0x0000000001FFFB80, 272 bytes long.
- Data: < LY > 08 09 4C 59 00 00 00 00 01 00 00 00 CD CD CD CD
- {459} normal block at 0x0000000001F792C0, 4096 bytes long.
- Data: < > 00 FB FF 01 00 00 00 00 CD CD CD CD CD CD CD CD
- {458} normal block at 0x0000000001FFFB00, 24 bytes long.
- Data: < > 90 F2 FF 01 00 00 00 00 00 00 00 00 00 00 00 00
- {457} normal block at 0x0000000001FFF290, 2048 bytes long.
- Data: < 0 > 80 FB FF 01 00 00 00 00 30 A3 F7 01 00 00 00 00
- {456} normal block at 0x0000000001FFF180, 160 bytes long.
- Data: <pA P > 70 41 F7 01 00 00 00 00 50 B3 FF 01 00 00 00 00
- {455} normal block at 0x0000000001F78250, 4096 bytes long.
- Data: < > 00 F1 FF 01 00 00 00 00 CD CD CD CD CD CD CD CD
- {454} normal block at 0x0000000001FFF100, 24 bytes long.
- Data: < > 90 E8 FF 01 00 00 00 00 00 00 00 00 00 00 00 00
- {453} normal block at 0x0000000001FFE890, 2048 bytes long.
- Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- {452} normal block at 0x0000000001FFD820, 4096 bytes long.
- Data: < > A0 D7 FF 01 00 00 00 00 CD CD CD CD CD CD CD CD
- {451} normal block at 0x0000000001FFD7A0, 24 bytes long.
- Data: <0 > 30 CF FF 01 00 00 00 00 00 00 00 00 00 00 00 00
- {450} normal block at 0x0000000001FFCF30, 2048 bytes long.
- Data: < > 20 8A 00 02 00 00 00 00 00 00 00 00 00 00 00 00
- {449} normal block at 0x0000000001FFCD50, 368 bytes long.
- Data: < KY > 08 F1 4B 59 00 00 00 00 00 00 00 00 00 00 00 00
- {448} normal block at 0x0000000001FFBCE0, 4096 bytes long.
- Data: <p ; > 70 EB 3B 02 00 00 00 00 CD CD CD CD CD CD CD CD
- {447} normal block at 0x00000000023BEB70, 24 bytes long.
- Data: <p > 70 B4 FF 01 00 00 00 00 00 00 00 00 00 00 00 00
- {446} normal block at 0x0000000001FFB470, 2048 bytes long.
- Data: <P > 50 CD FF 01 00 00 00 00 00 00 00 00 00 00 00 00
- {445} normal block at 0x0000000001FFB350, 176 bytes long.
- Data: <pA > 70 41 F7 01 00 00 00 00 80 F1 FF 01 00 00 00 00
- {444} normal block at 0x0000000001FFB260, 128 bytes long.
- Data: < KY KY > 08 8E 4B 59 00 00 00 00 F8 89 4B 59 00 00 00 00
- {443} normal block at 0x0000000001FFB170, 128 bytes long.
- Data: < KY KY > 08 8E 4B 59 00 00 00 00 F8 89 4B 59 00 00 00 00
- {442} normal block at 0x0000000001FFB080, 128 bytes long.
- Data: < KY KY > 08 8E 4B 59 00 00 00 00 F8 89 4B 59 00 00 00 00
- {441} normal block at 0x00000000023BEA80, 128 bytes long.
- Data: < KY KY > 08 8E 4B 59 00 00 00 00 F8 89 4B 59 00 00 00 00
- {439} normal block at 0x00000000023BE7E0, 4 bytes long.
- Data: < > 00 00 00 00
- {438} normal block at 0x0000000001F75660, 224 bytes long.
- Data: < > 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
- {437} normal block at 0x0000000001F755C0, 56 bytes long.
- Data: < > 0F 00 00 00 00 00 00 00 04 00 00 00 04 00 00 00
- {436} normal block at 0x0000000001F74D20, 2104 bytes long.
- Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- {435} normal block at 0x00000000023BE870, 272 bytes long.
- Data: <X KY > 58 E3 4B 59 00 00 00 00 D0 B5 F7 01 00 00 00 00
- {433} normal block at 0x00000000023BE770, 8 bytes long.
- Data: < > 80 F1 FF 01 00 00 00 00
- {432} normal block at 0x00000000023BEF70, 8 bytes long.
- Data: <P > 50 B3 FF 01 00 00 00 00
- {431} normal block at 0x00000000023BEE80, 128 bytes long.
- Data: < ; > E0 E8 3B 02 00 00 00 00 CD CD CD CD CD CD CD CD
- {430} normal block at 0x00000000023BEE00, 16 bytes long.
- Data: < > 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
- {429} normal block at 0x00000000023BED30, 96 bytes long.
- Data: < > 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
- {428} normal block at 0x00000000023BECC0, 4 bytes long.
- Data: < > 00 00 00 00
- {427} normal block at 0x00000000023BEC20, 56 bytes long.
- Data: < > 0F 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00
- {425} normal block at 0x00000000023BE610, 248 bytes long.
- Data: < KY > D0 A5 4B 59 00 00 00 00 02 00 00 00 01 00 00 00
- {424} normal block at 0x00000000023BE590, 16 bytes long.
- Data: <( KY pA > 28 ED 4B 59 00 00 00 00 70 41 F7 01 00 00 00 00
- {423} normal block at 0x00000000023BD520, 4096 bytes long.
- Data: < > B0 80 F7 01 00 00 00 00 CD CD CD CD CD CD CD CD
- {422} normal block at 0x0000000001F780B0, 24 bytes long.
- Data: < D > B0 44 F7 01 00 00 00 00 00 00 00 00 00 00 00 00
- {421} normal block at 0x0000000001F744B0, 2048 bytes long.
- Data: < > 10 85 00 02 00 00 00 00 00 00 00 00 00 00 00 00
- {420} normal block at 0x0000000001F74420, 36 bytes long.
- Data: < > 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00
- {419} normal block at 0x0000000001F74170, 576 bytes long.
- Data: < KY D > 98 FF 4B 59 00 00 00 00 20 44 F7 01 00 00 00 00
- Object dump complete.
复制代码 2, 你的opencv库链接的是什么版本的msvcrt?你现在编译的程序是链接什么版本的msvcrt?据我所知,最好链接同一个版本的msvcrt,因为不同版本的msvcrt对于new的处理方式似乎都不一样,而且你自己的程序代码里面从定义了new,但是opencv库是你之前就编译好的,你重定义了么?(估计没有重定义),这就带来很多问题。。。
这个问题我不太懂,回头找一些材料研究一下,多谢指导!
3,你试着去掉 cvtColor(mat,img,CV_BGR2YCrCb); 这条语句看看,是否还有同样的内存泄漏?
去掉的话,没有内存泄漏
4,调试跟踪进入相关代码,实际上从你这里看,代码也不是很复杂,如果你有调试版本的opencv,跟踪一下也很容易。
我跳进去过,进去cvColor里面,但是也没有发现开辟未释放的内存,所以比较奇怪 |