C++中如何防止内存泄漏

[复制链接]
查看11 | 回复4 | 2016-3-2 21:01:13 | 显示全部楼层 |阅读模式
new和delete 还有 malloc跟free这写我都知道,但是面试的时候问我说如何防止内存泄漏面试人员说这是最基本的还有其他的,我想知道具体的防止内存泄漏都有哪些

回复

使用道具 举报

千问 | 2016-3-2 21:01:13 | 显示全部楼层
别人我不知道,但我的做法如下:1.尽量不去手动分配内存。比如,我一般不使用数组,而使用STL的vector.2.如果需要手动分配数组,尽量使用STL中的分配方式,或者使用STL和BOOST中的智能指针。3.某些应用,比如MSXML,尽量使用智能指针。4.凡是使用new和delete的地方,首先注意指针的初始化,然后要注意new和delete的配对,再就是要注意错误的捕捉。很多时候,内存泄漏不是因为new和delete的配对造成的,而是在自己没有考虑到的可能结果中,程序中断而没有delete手动分配的内存. 5.貌似有专门的方法来检测内存泄漏。不过我只听说过,没用过。
回复

使用道具 举报

千问 | 2016-3-2 21:01:13 | 显示全部楼层
1)尽量把内存的分配和释放操作封装在类里面,自动化地进行;2)程序运行过程中避免内存的分配操作;(如可以采取预先分配好内存缓冲区的方式)--这条其实很重要;3)采取动STL组件的态数组代替手工分配对象内存的方式也是一种办法;
回复

使用道具 举报

千问 | 2016-3-2 21:01:13 | 显示全部楼层
使用所谓的即申请即初始化的方法(名字可能有错)这点在c++primer中有讲解。不过怎么说呢。还是要靠自己细心。小心行的千年船吗
回复

使用道具 举报

千问 | 2016-3-2 21:01:13 | 显示全部楼层
new 与 delete要配对存在。。。这个很重要
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行