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++如何比较两个字符串?

C++实现逐行读取txt文件中的字符串以及文件文本的复制

C++趣味程序】之开心消消乐

C++中不能重载的运算符有哪些

C++如何设置全局变量

c语言数组怎么输入?

C++如何获取系统时间?

C++)错误的map删除操作和stl中容器的迭代器的底层实现机制

如何用C++读取ini文件中的section节名

const在C++中的意思

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



打赏

取消

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

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

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

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

评论

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