【问题标题】:What is pointer stability?什么是指针稳定性?
【发布时间】:2019-12-19 06:10:05
【问题描述】:

link 关于 Abseil 容器的第二段说:

例如,Abseil 容器通常不保证插入或删除后指针的稳定性。

在这种情况下,指针稳定性意味着什么?

【问题讨论】:

    标签: c++ pointers operating-system virtual-memory abseil


    【解决方案1】:

    指针稳定性”意味着只要元素存在,指向元素的指针就保持有效(不会失效),即使底层容器发生突变,代码也可以缓存指向元素的指针。说容器具有指针稳定性,就等于说它不移动内存中的元素;他们的地址不会改变。指针稳定性/失效与参考稳定性/失效相同。

    这是您发布的页面的解释:https://abseil.io/docs/cpp/guides/container(Abseil 容器)。

    【讨论】:

      【解决方案2】:

      指针稳定性意味着指针保证在它所指向的对象的生命周期内保持稳定(即指针指向的地址保持不变并且不会改变),除非你做一些事情来破坏它。

      操作系统为您的进程提供的虚拟内存空间将使事物保持在相同的地址。虽然物理内存可能会改变。这是操作系统必须注意的事情之一。

      参考:Are Pointers stable?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-19
        • 2010-11-05
        • 1970-01-01
        • 2018-09-15
        • 2013-03-07
        • 2013-05-05
        相关资源
        最近更新 更多