如何将Table(数字列表)从Lua传递到C并访问它
我想将一个包含数字的列表从Lua传递到C并在C中访问它。我该怎么做?
假设我有以下表:
x = {1, 2, 3, 9, 5, 6}
我想将其发送到 C 并将该表存储在 C 中的数组中。
我使用以下方式发送它:
quicksort(x)
其中 quicksort
是我在 C 中定义的函数。
我如何访问C 中的x
?
I want to pass a list containing numbers from Lua to C and access it in C. How can I do it?
Suppose I have the following Table:
x = {1, 2, 3, 9, 5, 6}
I want to send it to C and store this table in array in C.
I sent it using:
quicksort(x)
where quicksort
is the function I have defined in C.
How can I access the x
in C?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您传递给函数的表将位于函数的堆栈中。您可以使用
lua_getfield
或lua_gettable
对其进行索引。使用
lua_next
遍历表格,可以如果需要,用 C 填充数组;不过,对于数组来说,只需从 1 迭代到#t
就足够了。一些示例实用程序代码(未经测试):
The table you pass to the function will be on the function's stack. You can index it by using
lua_getfield
orlua_gettable
.Traversing the table with
lua_next
, you can populate your array in C if you need to; although, for an array, simply iterating from 1 to#t
should suffice.Some example utility code (untested):