堆已损坏的几种解决方案

近期翻旧项目代码的时候遇到c++异常,提示堆已损坏。如图
堆已损坏的几种解决方案
收集了几种解决方案如下:

  1. 没有自己管理内存的,考虑lib库与dll库不匹配,如opencv,在debug模式下lib是d.lib;dll是d.dll;而release模式下则均没有后缀d
  2. 若自己管理了内存,一般是内存越界抱的错,具体地:如果不是new出来的内存用尝试用delete删除会导致堆已损坏;已经free了的内存再次free会发生堆损坏错误