智能指针有一个计数器,每次拷贝,传递等操作都会增加其计数器的值,当其计数器归0时会释放内存,因此不能混合使用常规指针与智能指针,当常规指针new得一块内存后,此时将其指向的内存传递给智能指针使用将会引起智能指针提前释放申请的内存,后面常规指针将无法正常使用,变为一个空悬指针(指向已经销毁的对象或已经回收的地址)。解决方法是将指针指向nullptr。
智能指针有一个计数器,每次拷贝,传递等操作都会增加其计数器的值,当其计数器归0时会释放内存,因此不能混合使用常规指针与智能指针,当常规指针new得一块内存后,此时将其指向的内存传递给智能指针使用将会引起智能指针提前释放申请的内存,后面常规指针将无法正常使用,变为一个空悬指针(指向已经销毁的对象或已经回收的地址)。解决方法是将指针指向nullptr。