gpt4 book ai didi

c - 删除使用 lua_newuserdata 分配的内存

转载 作者:太空狗 更新时间:2023-10-29 14:51:16 25 4
gpt4 key购买 nike

什么时候在 C 中分配 Lua gc 内存

void *lua_newuserdata (lua_State *L, size_t size);

?当 Lua 中不再有引用指向它时,还是我必须注意删除它?

最佳答案

Lua 中没有对它的引用时,使用 lua_newuserdata 分配的内存将被释放。这就是垃圾收集的工作原理。有重要的后果:

  1. 无需释放 C 程序中的内存。完全不需要担心释放它。

  2. 不要释放该内存。

  3. 不要在您的 C 程序中存储指向该内存的指针并假定它永远有效。

  4. 如果您想使用该指针,请确保在 Lua 中有对它的引用。

换句话说,在调用 lua_newuserdata 之后,如果您稍后要在你的 C 程序。否则它可能会在你返回 Lua 后消失。

关于c - 删除使用 lua_newuserdata 分配的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19452725/

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