【发布时间】:2025-12-21 05:45:11
【问题描述】:
我想知道是否可以访问所有用户数据“表”(是否称为用户数据表?)然后从 Lua 中删除它们,因为这是我的问题:
a = Object(5, 5)
a:Delete()
a:SetPosition(3,3)
正如您首先看到的,我创建了一个对象并保存了一个指向名为 Object 的 c++ 类的指针,该类是在我的地图类中使用“new”分配的。然后我删除对象,这意味着我删除了为地图类中的指针分配的内存。最后我调用 SetPosition,如果内存仍然是为 c++ Object 类分配的,那么一切都会很有趣。但是如果它被删除(在这种情况下,因为我们在 SetPosition(...) 调用之前调用了 Delete())我的程序将崩溃。所以我想知道的是:
是否可以通过调用 Delete 将 lua 中的变量 'a' 设置为 nil ?我知道如果 Delete 返回 nil,我可以执行类似 'a = a:Delete()' 的操作,但如果我忘记执行 'a =' 部分,它会失败。另外我想知道是否可以删除用户数据并在我调用 SetPositon() 时检查它是否不存在,如果不存在,我将返回。
【问题讨论】:
标签: c++ pointers lua lua-userdata