主要有二方面的原因:
1、删除new的数组一部分
int* p = new int[10];
p = {1,1,1,1,1,1,1,1,1,1,};
delete p;
2、同一new对象删除多次:
如:在成员变量delete后在析构中重复。
解决方法:
根据内在的分配与释放进行修改。
相关问题:
Heap block at 00184580 modified at 001845B0 past requested size of 28。
解释:少释放了7个字节。
参考资料:
http://zhidao.baidu.com/question/265812782.html
http://apps.hi.baidu.com/share/detail/23185023
http://www.cnblogs.com/duzouzhe/archive/2009/06/04/1495794.html
http://hi.baidu.com/yanerxh/blog/item/88d58455ace78cc2b645ae8e.html