gpt4 book ai didi

c++ - 在什么情况下 vtable 指针可以为空(或 0x1)?

转载 作者:可可西里 更新时间:2023-11-01 18:04:16 25 4
gpt4 key购买 nike

我目前正在调试崩溃日志。发生崩溃是因为 (c++-) 对象的 vtable 指针是 0x1,而据我从崩溃日志中可以看出,对象的其余部分似乎没问题。

程序在尝试调用虚拟方法时崩溃。

我的问题:在什么情况下 vtable 指针可以变为 null? operator delete 是否将 vtable 指针设置为空?

这发生在使用 gcc 4.0.1(Apple Inc. build 5493)的 OS X 上。

最佳答案

可能是内存践踏 - 错误地覆盖了 vtable。在 C++ 中有几乎无限多的方法可以“实现”这一点。例如,缓冲区溢出。

关于c++ - 在什么情况下 vtable 指针可以为空(或 0x1)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2072256/

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