c – Lua table.getn()返回0?

我已将Lua嵌入到我的C应用程序中,我试图找出为什么在C代码中创建一个表:
lua_createtable(L,numObjects);

并返回到Lua,当我打电话给以下时,会产生一个结果:

print("Num entries",table.getn(data))

(其中“data”是由lua_createtable创建的表)

表中有清楚的数据,因为我可以通过以下方式遍历每个条目(字符串:userdata)对:

for key,val in pairs(data) do
  ...
end

但是为什么table.getn(data)返回零?当我用lua_createtable创建它时,是否需要在表的元素中插入东西?我一直在看lua_createtable使用的例子,我没有看到这样做在任何地方….

解决方法

table.getn(您不应该在Lua 5.1中使用).使用length运算符#)返回表的数组部分中的元素数.

数组部分是从数字1开始的每个键,并增加直到第一个值为零(不存在).如果所有的键都是字符串,那么表的数组部分的大小为0.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...