【发布时间】:2019-07-01 09:22:33
【问题描述】:
据说经常(但不总是)当您在接近零的内存位置(例如 $89)获得一个 AV 时,您有一个未初始化的指针。
但是我在 Delphi 的书中也看到过这个……嗯……或者它们都是由同一个作者写的???
更新:
引自 Bob Swart 等人的“C++ builder 6 开发人员指南”,第 71 页:
当内存地址ZZZZZZZZZ接近零时,原因往往是 一个已被访问的未初始化指针。
为什么会这样?为什么未初始化的指针包含低数字?为什么不是像 $FFFFFFF 这样的大数字或普通随机数?这是都市神话吗?
【问题讨论】:
-
“据说”有点笼统。你能链接到一些说明这一点的资源吗?
-
未初始化意味着变量包含一个未确定值。时期。未定就是未定,可以是任何东西。
-
全局变量区域初始化为零,因此全局指针的初始值为零。局部变量可能有任何值。
-
@GPhilo - Bob swart 等人的 C++ builder 6 开发人员指南,第 71 页
-
@GPhilo - 还有很多很多其他地方。到现在我已经听了30遍了。你现在还没有听到它真是个奇迹。即使这被证明是都市传说。
标签: c++ delphi access-violation