内存分配
Lua 语言核心对内存分配不进行任何假设,它既不会调用 malloc 也不会调用 realloc 来分配内存。相反,Lua 语言核心只会通过一个分配函数(allocation function)来分配和释放内存,当用户创建 Lua 状态时必须提供该函数。
luaL_newstate 是一个用默认分配函数来创建 Lua 状态的辅助函数。该默认分配函数使用了来自 C 语言标准函数库的标准函数 malloc-realloc-free, 但是,要完全控制 Lua 的内存分配也很容易,使用原始的 lua_newstate 来创建我们自己的的 Lua 状态即可:
lua_State *lua_newstate(lua_Alloc f, void *ud);