nil 相同。我一直以来的理解是Assigned()正在检测这些悬空指针,但现在我知道它没有。悬空指针是那些可能在某-6ren">
gpt4 book ai didi

delphi - 如果 "dangling pointers"检测不到,如何检测 "Assigned()"?

转载 作者:行者123 更新时间:2023-12-03 14:36:06 26 4
gpt4 key购买 nike

在另一个question ,我发现Assigned()功能与 Pointer <> nil 相同。我一直以来的理解是Assigned()正在检测这些悬空指针,但现在我知道它没有。悬空指针是那些可能在某个时刻创建的指针,但此后已被释放并且尚未分配给nil。还没有。

如果Assigned()无法检测悬空指针,那么什么可以呢?我想在尝试使用我的对象之前检查它,以确保它确实是一个有效的创建对象。我不使用FreeAndNil正如很多人推荐的那样,因为我喜欢直接。我只是用SomeObject.Free .

访问违规是我最大的敌人 - 我尽我所能阻止它们的出现。

最佳答案

如果您的作用域中有一个对象变量,并且它可能是也可能不是有效的引用,那么您应该使用 FreeAndNil。或者修复您的代码,以便更严格地管理您的对象引用,因此这永远不是问题。

访问违规不应被视为敌人。它们是错误:它们意味着您犯了一个需要修复的错误。 (或者您所依赖的某些代码中存在错误,但我发现最常见的是我搞砸了,尤其是在处理 RTL、VCL 或 Win32 API 时。)

关于delphi - 如果 "dangling pointers"检测不到,如何检测 "Assigned()"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8598408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com