lua commandline在执行脚本后崩溃

在执行使用LuaBridge映射的内部对象的脚本后,Lua命令行可执行文件崩溃。

**调用栈**

Compiler.exe!l_alloc(void * ud, void * ptr, unsigned int osize, unsigned int nsize)第1003行 C
Compiler.exe!luaM_realloc_(lua_State * L,void * block,unsigned int osize,unsigned int nsize)第86行 C
Compiler.exe!luaH_free(lua_State * L,Table * t)第418行 C
Compiler.exe!freeobj(lua_State * L,GCObject * o)第707行 C
Compiler.exe!sweeplist(lua_State * L,GCObject * * p,unsigned int count)第 743行 C
Compiler.exe!luaC_freeallobjects(lua_State * L)第973行 C
Compiler.exe!close_state(lua_State * L)第245行 C
Compiler.exe!lua_close(lua_State * L)第344行 C
Compiler.exe!main(int argc,char * * argv)第606行 C

值
ud = 0x00000000
ptr = 0x0ffb8690
osize = 32
nsize = 0

代码

static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize)
{

(void)ud; (void)osize;  /*未使用*/

if (nsize == 0)
>{
    free(ptr);

return NULL;

}

else
    return realloc(ptr, nsize);

}

错误

在Compiler.exe的0x50B8461D处(在ucrtbased.dll中)抛出异常:访问读取位置0x0FFB868C时发生0xC0000005:。

如果有此异常的处理程序,则可以安全地继续运行程序。

如何处理此问题中有什么提示。显然,这可能是我们代码中的内存分配问题,但是Lua应该正确处理这个问题吗?

点赞