内存泄漏指的是程序中有申请内存的过程,但在程序结束之后,始终没有或者无法释放占有的内存的则称为内存泄漏,单次的内存的泄漏可能用户并不会察觉,但是累积的内存泄漏将会十分可怕,无论内存的大小,终会被耗光。
内存溢出就是可用的内存均被占用,无法申请内存的情况。
空悬指针指的是一个指针,当它指向的对象已经被释放的时候而自身却没有被置为null的时候,那么这个指针就会变成一个空悬指针。
野指针,通俗的表示就是没有进行初始化的指针,但是因为一个指针没有初始化的时候会一通乱指,这个时候就类似于空悬指针了,所以有的介绍里面将空悬指针作为野指针的一种来进行描述。
如何检测内存泄漏
1.⾸先可以通过观察猜测是否可能发⽣内存泄漏,
Linux
中使⽤
swap
命令观察还有多少可⽤的交换空间,在⼀ 两分钟内键⼊该命令三到四次,看看可⽤的交换区是否在减少。
2.还可以使⽤ 其他⼀些 /usr/bin/stat
⼯具如
netstat
、
vmstat
等。如发现波段有内存被分配且从不释放,⼀个 可能的解释就是有个进程出现了内存泄漏。
3.当然也有⽤于内存调试,内存泄漏检测以及性能分析的软件开发⼯具
valgrind
这样的⼯具来进⾏内存泄漏的 检测