C++中如何避免内存泄漏?


当前第2页 返回上一页

1、不要手动管理内存,可以尝试在适用的情况下使用智能指针。

2、使用std::string而不是char*。std::string类在内部处理所有内存管理,而且它速度快且优化得很好。

3、除非要与旧的lib接口,否则不要使用原始指针。

4、在C++中避免内存泄漏的最好方法是尽可能少地在程序级别上进行新的/删除调用――最好是没有。任何需要动态内存的东西都应该隐藏在一个raii对象中,当它超出范围时释放内存。raai在构造函数中分配内存并在析构函数中释放内存,这样当变量离开当前范围时,内存就可以被释放。

5、使用了内存分配的函数,要记得使用其想用的函数释放掉内存。可以始终在new和delete之间编写代码,通过new关键字分配内存,通过delete关键字取消分配内存。

6、培养良好的编码习惯,在涉及内存的程序段中,检?y内存是否发生泄露。

示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

#include <bits/stdc++.h>

using namespace std;

   

// 内存泄漏函数

void func_to_handle_mem_leak()

{

    int* ptr = new int(5);

   

    // 主体

   

    // 使用delete删除指针ptr

    delete (ptr);

}

 

int main()

{

   

    // 调用函数来处理内存泄漏

    func_to_handle_mem_leak()

   

        return 0;

}

说明:该例中没有内存浪费,因为当我们从函数中出来时,我们使用delete函数重新分配内存。

以上就是C++中如何避免内存泄漏?的详细内容!

返回前面的内容

相关阅读 >>

第三章C++:字符串string、向量vector和数组

在c/C++中如何使用extern关键字

C++换行符有哪些

详解C++虚成员函数和动态联编

C++运算符重载的方法有哪些

C++学习基础知识--this指针、静态成员、常量成员函数

C++中判断重载方法的依据是什么

C++是什么意思

C++实现在二维数组中的查找

c语言之后学什么?

更多相关阅读请进入《C++》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...