您的位置:首页 > 编程语言 > C语言/C++

C++内存泄露的问题

2013-09-04 00:59 218 查看
遇到一个很头疼的内存泄露的问题,调试的大半天才发现的,指针指向的对象1被delete了两次,而在VS2005中,debug中断的位置不是这个被多次delete的对象1,而是另外一个对象2,在释放它的时候,提示访问了未知的堆栈。

虽然没有在内存中仔细进行调试,不过可以揣测出问题原因是,在多次释放对象1的时候,释放掉了对象2的资源,导致在释放对象2的资源的时候,访问未知的堆内存异常,而对象2在代码中new和delete的代码是没有问题的,所以得找出对象1的异常,而在编译器中没有提示,这个问题就隐藏得比较深。

如何避免这样内存泄露问题再次出现呢

1.规范代码的编写,涉及到指针操作一定要小心再小心,不要遗漏问题。

2.时常进行迭代测试,防止问题累计,这样就可以在修改或者增加了新代码的地方进行重点的调试,而刚才出现的这个问题,也只能通过检查代码来找出问题的所在。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: