我的代码如下
Float cur_ coeffs
float *dis;
cur_coeffs=(float*)cvAlloc(sizeof(float)*(myfre->nEigs));
诸如此类,
在最后释放时,使用如下方式,
cvFree( (void**)&cur_coeffs );
cvFree( (void**)&dis
);
此时会产生如下错误,
Debug Error!
Program: test.exe
DAMAGE: after Normal block(#64) at 0x003429f8
Program: test.exe
DAMAGE: after Normal block(#64) at 0x003429f8
关于此错误,
土豆
在
vckbase
网站上有个说明,但是我的错误好像不是
土豆
先生发现的错误,(该网址为
http://www.vckbase.com/document/viewdoc/?id=591
)
我一开始以为错误出在错误释放不存在的内存上,但是我发现内存的创建和释放都在一个函数体内,不会产生如上的问题,后来发现错误
是强制转化的问题,由于不合理的转化类型,使得释放时所释放的空间大小不一样,所以会产生问题。其实与土豆先生所说的是一致的。