创建 Lua State 时的访问冲突

我有一个简单的程序:

#include <lua.hpp>

int main() {
    lua_State * ls = lua_newstate(0, 0);

    lua_close(ls);

    return 0;
}

我将 Lua DLL 放在正确的文件夹中,链接了库,设置了 include 文件夹,并编译了代码。编译过程很干净,但是当我运行程序时,它显示了 这个 错误。我正在使用最新版本的 LuaBinaries 和 Visual Studio 2017。

点赞
用户1806780
用户1806780

你将空指针作为分配器传递给了 lua_newstate。当它尝试分配时,会发生访问冲突,正如你所看到的那样。

为什么要这样调用它呢?也许你想用 luaL_newstate() 替代它?它提供了自己的分配器系统,所以你不需要编写自己的分配器。

2017-07-21 18:00:25