删除后自动指针置空
删除后自动指针置空的遗漏一直困扰着开发者。虽然这样的机制可以通过使指针无效来防止崩溃,但它也引起了对性能和与 const 指针的兼容性的担忧。
性能影响
这种遗漏的一个潜在原因是使指针无效所需的附加指令的性能开销。在性能关键型应用程序中,这可能会对执行速度产生显着影响。
常量指针
另一个考虑因素是常量指针的行为。清空 const 指针会引入潜在的歧义,因为该指针无法重新分配给另一个值。这可能会在存在 const 指针的情况下导致混乱和意外行为。
Stroustrup 的观点
C 创建者 Bjarne Stroustrup 已经解决了这个问题,并指出该标准明确允许实现删除以使左值操作数无效。然而,他发现这种做法并没有被实现者广泛采用。
关键要点
虽然删除后自动指针无效的好处是显而易见的,但它的遗漏是可能是由于性能问题和 const 指针的兼容性问题造成的。因此,开发者在删除动态内存后必须显式地使指针无效,以防止无效指针访问错误。
以上是为什么 C 在 `delete` 之后不自动清空指针?的详细内容。更多信息请关注PHP中文网其他相关文章!