C++怎么传递一个数组到LUA?

 我来答
一骑当后
2018-02-13 · 知道合伙人数码行家
一骑当后
知道合伙人数码行家
采纳数:40298 获赞数:306440
网络、设备维护、电路、弱电检测。

向TA提问 私信TA
展开全部
数组的操作,参考实例如下:
数组其实是一种特殊的表格。
int LuaArray(lua_State* L)
{
lua_newtable(L); //新建一个表,并压入栈顶
lua_pushnumber(L,-1); //这行和下面一行,没搞懂为什么需要这样,但如果不执行,lua中获取的数据就会出错
lua_rawseti(L,-2,0);
int array[]={11,22,33,44,55};
for(int n=0;n<sizeof(array)/sizeof(int);n++)
{
lua_pushinteger(L,array[n]); //将数组的数据入栈
lua_rawseti(L,-2,n+1); //将刚刚入栈的数据设置为数组的第n+1个数据,同时这个数据会自动从栈里pop
}
return 1; //push进栈的数据都在设置数组时自动pop了,所以现在栈里只有1个数据,就是最开始push的表
}

lua获取刚刚传的表格
array=luaArray()
for i,v in ipairs(array)
do
print(v)
end
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式