裸指针的六个问题
1>难以区分指针指向的是单个对象还是一组对象。
2>使用完指针之后无法判断是否应该销毁指针,因为无法判断指针是否“拥有”指向的对象;
3>在已经确定需要销毁指针的情况下,也无法确定是用delete关键字删除,还是有其他特殊的销毁机制例如通过将指针传入某个特定的销毁函数来销毁指针所指资源;
4>即便已经确定了销毁指针的方法,由于1的原因,仍然无法确定到底是用delete(销毁单个对象还是delete[]销毁一组对象;
5>假设上述的问题都解决了,也很难保证在代码的所有路径中(分支结构,异常导致的跳转),有且仅有一次销毁指针操作;任何一条路径遗漏都可能导致内存泄露,而销毁多次则会导致未定义行为;
6>理论上没有方法来分辨一个指针是否处于悬挂状态;