未初始化指针:在声明指针时没有对其进行初始化,导致指针指向一个未知的内存地址。
野指针:指针指向的内存已经释放或者不再有效,但是仍然被用于访问内存,可能导致程序崩溃。
悬空指针:指针指向的内存已经释放,但是指针本身没有被置为 nullptr 或者指向其他有效的内存地址,可能导致程序访问无效内存。
内存泄漏:在使用 new 创建对象后,忘记使用 delete 释放内存,导致内存泄漏。
使用未初始化的指针访问成员:在使用指针访问对象成员之前,没有对指针指向的对象进行初始化。
类型转换错误:将一个不同类型的指针赋值给类指针,可能导致类型转换错误或者访问非法内存。
多次释放同一块内存:在使用 delete 释放内存后,又再次使用 delete 释放同一块内存,会导致程序崩溃。
内存越界访问:在使用指针访问数组或者其他数据结构时,没有进行边界检查,可能导致越界访问和内存错误。