C++中如何防止内存泄漏
new和delete还有malloc跟free这写我都知道,但是面试的时候问我说如何防止内存泄漏面试人员说这是最基本的还有其他的,我想知道具体的防止内存泄漏都有哪些...
new和delete 还有 malloc跟free这写我都知道,但是面试的时候问我说如何防止内存泄漏面试人员说这是最基本的还有其他的,我想知道具体的防止内存泄漏都有哪些
展开
4个回答
展开全部
别人我不知道,但我的做法如下:
1.尽量不去手动分配内存。比如,我一般不使用数组,而使用STL的vector.
2.如果需要手动分配数组,尽量使用STL中的分配方式,或者使用STL和BOOST中的智能指针。
3.某些应用,比如MSXML,尽量使用智能指针。
4.凡是使用new和delete的地方,首先注意指针的初始化,然后要注意new和delete的配对,再就是要注意错误的捕捉。很多时候,内存泄漏不是因为new和delete的配对造成的,而是在自己没有考虑到的可能结果中,程序中断而没有delete手动分配的内存.
5.貌似有专门的方法来检测内存泄漏。不过我只听说过,没用过。
1.尽量不去手动分配内存。比如,我一般不使用数组,而使用STL的vector.
2.如果需要手动分配数组,尽量使用STL中的分配方式,或者使用STL和BOOST中的智能指针。
3.某些应用,比如MSXML,尽量使用智能指针。
4.凡是使用new和delete的地方,首先注意指针的初始化,然后要注意new和delete的配对,再就是要注意错误的捕捉。很多时候,内存泄漏不是因为new和delete的配对造成的,而是在自己没有考虑到的可能结果中,程序中断而没有delete手动分配的内存.
5.貌似有专门的方法来检测内存泄漏。不过我只听说过,没用过。
展开全部
1)尽量把内存的分配和释放操作封装在类里面,自动化地进行;
2)程序运行过程中避免内存的分配操作;(如可以采取预先分配好内存缓冲区的方式)--这条其实很重要;
3)采取动STL组件的态数组代替手工分配对象内存的方式也是一种办法;
2)程序运行过程中避免内存的分配操作;(如可以采取预先分配好内存缓冲区的方式)--这条其实很重要;
3)采取动STL组件的态数组代替手工分配对象内存的方式也是一种办法;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用所谓的即申请即初始化的方法(名字可能有错)
这点在c++primer中有讲解。
不过怎么说呢。还是要靠自己细心。小心行的千年船吗
这点在c++primer中有讲解。
不过怎么说呢。还是要靠自己细心。小心行的千年船吗
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
new 与 delete要配对存在。。。这个很重要
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询