三种内存问题与三种指针

1.内存

(1)内存泄露

Memory Leak

即动态申请的内存没有返还给系统。

(2)内存溢出

Out Of Memory OOM

即无法向系统申请到想要的内存。

内存如果不断泄露,最终会导致内存溢出。

(3)内存越界

Heap Corruption

访问超过申请内存的区域。

2.指针

(1)野指针

Wild Pointer

未经初始化的指针,一般的指针没有初始化访问,会访问到一个随机的位置。

(2)空悬指针

Dangling Pointer

指向一段已经释放的内存。

(3)空指针

Null Pointer

即指向nullptr的指针,访问空指针会产生异常导致程序终止。

注意:

①空指针比野指针和空悬指针更好,因为野指针和空悬指针很可能不经意改变了,其他程序的值,导致程序错误。

访问空指针会使得本程序直接终止,避免其他错误,同时也更容易检测。

②智能指针,在未初始化时,值是nullptr,从这一点上来说,它也是更安全的。