完整的userdata __gc元方法是否需要释放()它的内存?

tad*_*usz 3 lua garbage-collection

我在用C编写的Lua模块中有一个完整的用户数据__gc().userdata 有metamethod,由垃圾收集器调用.lua是否在__gc()通话后解释了免费的用户数据内存,或者我是否需要free()在内部使用它__gc()

Jan*_*Vos 8

你不应该释放内存,因为你自己没有malloc(); Lua为你做了两件事.实际上,内存甚至没有收集在相同的垃圾收集周期中,如Lua 5.1参考手册中的2.10.1节所述.