内存溢出与内存泄漏都会对软件运行的稳定性产生影响,因此,在使用new和delete操作符从堆中申请和释放内存块应该注意避免这些情况的发生。在本软件的实际应用中,采用了以下策略:
① 内存分配未成功,则不使用。在使用前对指针进行检查,如果new操作符无法分配到所需的内存,则返回NULL。
② 在程序中增加内存不足处理函数,用来增加程序的健壮性。
③ new与delete配套使用,即每申请一块内存,在使用完之后,一定配套使用相同类型的delete进行内存释放。一般在实际编程中,已删除,就最好马上置NULL,以免成为野指针!
④ 避免对数组进行typedef动作,采用C++标准库包含数组的模块,减少delete删除对象由于形式不对带来的内存泄漏问题。
交给别人时,最容易出错。
如果出现了类似问题,可以使用 Parasoft 公司的 Insure++ 测试软件找出相应的内存问题,帮助解决。见
http://wenku.baidu.com/view/711ec44d2e3f5727a5e9622f.html
另外,网上很流行一篇C++内存管理的文章,但不知是否全对,请看:http://www.cnblogs.com/lancidie/archive/2011/08/05/2128318.html