Lua C API不适用于指针
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lua C API不适用于指针相关的知识,希望对你有一定的参考价值。
这就是我做的。我在C ++代码中创建了一个struct和一个静态函数
struct ItemDefinition {
int64_t price;
};
int static getPrice(lua_State* L) {
ItemDefinition* def = (ItemDefinition*)lua_touserdata(L, 1);
printf("%p
", def);
printf("%d
", def->price);
return 0;
}
我还在lua中注册了该函数并初始化了一个ItemDefination对象。
ItemDefinition def;
def.price = 120;
lua_pushlightuserdata(lua_state_, (ItemDefinition*)&def);
lua_setglobal(lua_state_, "def");
luaL_Reg module[] = {{"getPrice", &getPrice}, {NULL, NULL}};
从我的Lua脚本中,我只是简单地调用该函数
getPrice(def)
如果我打印出def的地址,如果工作正常。所以我确信该函数被成功调用。但是,如果我想要获得def->price
,我将从地址消毒剂"==283789==ERROR stack use after return"
得到一个错误我不熟悉c++和lua。你能帮忙解决问题所在吗?
答案
解决问题,NVM。这实际上是因为指针问题。
以上是关于Lua C API不适用于指针的主要内容,如果未能解决你的问题,请参考以下文章
添加和查询指针不适用于 Parse.com 的 REST API
onActivityResult 未在 Android API 23 的片段上调用