0
点赞
收藏
分享

微信扫一扫

C++中内存泄漏的几种情况

有点d伤 2022-03-16 阅读 71

1. 在类的构造函数和析构函数中没有匹配的调用new和delete函数

2. 没有正确地清除嵌套的对象指针

3. 在释放对象数组时在delete中没有使用方括号

4. 指向对象的指针数组不等同于对象数组

5. 缺少拷贝构造函数

6. 缺少重载赋值运算符

7. 关于nonmodifying运算符重载的常见迷思

8. 没有将基类的析构函数定义为虚函数

野指针:指向被释放的或者访问受限内存的指针。

造成野指针的原因:

指针变量没有被初始化(如果值不定,可以初始化为NULL)
指针被free或者delete后,没有置为NULL, free和delete只是把指针所指向的内存给释放掉,并没有把指针本身干掉,此时指针指向的是“垃圾”内存。释放后的指针应该被置为NULL.
指针操作超越了变量的作用范围,比如返回指向栈内存的指针就是野指针。

举报

相关推荐

0 条评论