遇到该Vector析构时_CrtIsValidHeapPointer(pUserData) 的bug已经好几天了

问题描述:训练程序。当样本数为pos500 neg500时,训练了2天两夜17个节点了都没问题。
当样本数改为pos3800 neg300时,出现了问题,在训练完弱分类器的一个维度准备返回时崩溃,提示断言失败:_CrtIsValidHeapPointer(pUserData)。崩溃现场看,所有的临时vector变量都还早,唯独InvVector[]已经被清空。

 

查找了多种原因未果:
1mfc中,内存不足会报bad_alloc 或者直接弹出对话框 所以,内存不足的问题排除
2代码的问题越界导致vector的东西被擦除,这个可能性很小,因为之前就做过相关的实验,并没有发现该处代码有bug,而且如果vector的下标越界会出错提示
3按照msdn解释 可能是dll导致内存分配相关的问题。

注意再次崩溃时查看内存是否够用
如果再次崩溃,就大量的加入断言,对于每一个使用到InvError的地方加入断言

你可能感兴趣的:(vector,dll,mfc)