如何通过 for 循环从 C 函数返回表的表到 Lua

2024-01-27

我有一个std::list对象,我想给 Lua 一个返回其多维位置的函数。所以我需要创建一个表的表:

{{1,2,3...,512}, {1,2,3...,512},...,512}

lua_newtable(L);

    for (int i = 0; i < 512; i++)
    {
        lua_newtable(L);

        lua_pushnumber(L, pos[i]);
        lua_rawseti(L, -2, i);
        lua_rawseti(L, -2, i+1);

        for (int j = 0; j < 512; j++)
        {
                //pos[i][j]
        }
    }

我会尝试反复尝试,但由于我现在不知道如何调试它,所以我真的迷失了。


我认为您想创建尺寸为 512x512 的嵌套表(或矩阵)。

static int CreateMatrix( lua_State *L ) {
    lua_newtable( L );
    for( int i = 0; i < 512; i++ ) {
        lua_pushnumber( L, i + 1 );    // parent table index
        lua_newtable( L );             // child table
        for( int j = 0; j < 512; j++ ) {
            lua_pushnumber( L, j + 1 );  // this will be the child's index
            lua_pushnumber( L, j + 1 );  // this will be the child's value
            lua_settable( L, -3 );
        }
        lua_settable( L, -3 );
    }
    return 1;
}

您当然可以使用自己的值/索引。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 for 循环从 C 函数返回表的表到 Lua 的相关文章

  • C# SmtpClient编程中如何设置带有中文的附件文件名?

    我的代码如下 ContentType ct new ContentType ct MediaType MediaTypeNames Application Octet ct Name 这是一个很长的中文文件名希望能用它在附件名中 Doc A
  • 格式说明符%02x

    我有一个简单的程序 include
  • 是否需要销毁运算符删除的形式才能真正销毁对象?

    C 20 添加了破坏形式operator delete区别于std destroying delete t范围 它导致delete表达式在调用之前不再销毁对象operator delete 目的是在显式调用对象的析构函数和释放内存之前 允许
  • 如何使用 openSSL 函数验证 PEM 证书的密钥长度

    如何验证以这种方式生成的 PEM 证书的密钥长度 openssl genrsa des3 out server key 1024 openssl req new key server key out server csr cp server
  • C# 中的 Stack<> 实现

    我最近一直在实现递归目录搜索实现 并且使用堆栈来跟踪路径元素 当我使用 string Join 连接路径元素时 我发现它们被颠倒了 当我调试该方法时 我查看了堆栈 发现堆栈内部数组中的元素本身是相反的 即最近 Push 的元素位于内部数组的
  • 无法继承形状

    为什么我不能使用继承 a 的类Shapes class http msdn microsoft com en us library ms604615 28v vs 90 29 我需要延长Rectangle具有一些方法的类 但我想以与使用相同
  • OpenGL:如何检查用户是否支持glGenBuffers()?

    我检查了文档 它说 OpenGL 版本必须至少为 1 5 才能制作glGenBuffers 工作 用户使用的是1 5版本但是函数调用会导致崩溃 这是文档中的错误 还是用户的驱动程序问题 我正在用这个glGenBuffers 对于VBO 我如
  • Lua 上的 For 循环

    我的作业是如何执行 for 循环 我已经从数字上弄清楚了 但无法从名称上弄清楚 我想创建一个 for 循环来运行名称列表 以下是我到目前为止所拥有的 names John Joe Steve for names 1 3 do print n
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • 保证复制省略是否适用于函数参数?

    如果我理解正确的话 从 C 17 开始 这段代码现在要求不进行任何复制 Foo myfunc void return Foo auto foo myfunc no copy 函数参数也是如此吗 下面的代码中的副本会被优化掉吗 Foo myf
  • 如何在 Javascript 中连接 C# ActiveX 事件处理程序

    我尝试使用几个代码片段将 ActiveX 对象与 Javascript 事件处理程序挂钩 我无法确定为什么事件处理程序没有被调用 带有项目的 Github 存储库 https github com JesseKPhillips Csharp
  • 在 azure blob 存储中就地创建 zip 文件

    我将文件存储在 Blob 存储帐户内的一个容器中 我需要在第二个容器中创建一个 zip 文件 其中包含第一个容器中的文件 我有一个使用辅助角色和 DotNetZip 工作的解决方案 但由于 zip 文件的大小最终可能达到 1GB 我担心在进
  • SQLAPI++ 的免费替代品? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何免费 也许是开源 的替代品SQLAPI http www sqlapi com 这个库看起来
  • .NET 和 Mono 之间的开发差异

    我正在研究 Mono 和 NET C 将来当项目开发时我们需要在 Linux 服务器上运行代码 此时我一直在研究 ASP NET MVC 和 Mono 我运行 Ubuntu 发行版 想要开发 Web 应用程序 其他一些开发人员使用 Wind
  • 调用 .ToArray() 时出现 ArgumentException

    我有一个经常被清除的列表 代码完全是这样的 VisitorAgent toPersist List
  • C:设置变量范围内所有位的最有效方法

    让我们来int举个例子 int SetBitWithinRange const unsigned from const unsigned to To be implemented SetBitWithinRange应该返回一个int其中所有
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • 任何人都可以清楚地告诉如何在不使用像 这样的预定义函数的情况下找到带有小数值或小数值的指数吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 例如 2 0 5 1 414 所以想要 我是 c 的新手 所以请解释简单的逻辑 如果不是复杂的逻辑也足够了 在数学中 从整数取幂到实数
  • winform c# 中的弹出窗口

    我正在开发一个需要弹出窗口的项目 但问题是我还希望能够通过表单设计器在此弹出窗口中添加文本框等 所以基本上我有一个按钮 当您单击它时 它将打开我在表单设计器中设计的另一个窗口 我一直在谷歌搜索 但还没有找到我需要的东西 所以我希望你们能帮助
  • 如何为有时异步的操作创建和实现接口

    假设我有数百个类 它们使用 计算 方法实现公共接口 一些类将执行异步 例如读取文件 而实现相同接口的其他类将执行同步代码 例如将两个数字相加 为了维护和性能 对此进行编码的好方法是什么 到目前为止我读到的帖子总是建议将异步 等待方法冒泡给调

随机推荐

  • Acer Iconia A200 上的 VideoView getCurrentPosition() 不规则

    我有一个带有 VideoView 的应用程序 我设置了一个要在 VideoView 中播放的视频 视频播放时的某个时刻 它会暂停 然后 在暂停一段时间后 它将再次开始播放视频 但会向前播放到视频没有暂停时的位置 例如 视频开始播放 视频暂停
  • 我的 Excel 2010 添加仅在打开空白工作簿时显示。打开现有文档时不会显示

    我们已经制作了一个 Excel 插件 该插件已正确安装 并且仅在从主图标 或空白工作簿 打开 Excel 时才会显示 打开任何现有保存的 Excel 文档时 它不会显示在工具栏上 我已确保在打开现有文档时 在文件 gt 选项 gt 添加中
  • 如何在重新打开应用程序时显示相同的视图

    我有一个表视图 它在单击表中的某行时显示一个 Web 视图 该视图又从 SQLite 中获取数据 如果用户在 webview 中查看描述时按 home 键关闭应用程序 然后有时重新打开它 我应该让用户看到相同的屏幕 如何再次显示相同的视图
  • JQGrid 设置不同的 URL 进行添加、编辑、删除

    我想在网格顶部添加三个按钮 用于添加 编辑 删除 并希望为每个操作调用单独的 URL 我想为此使用表单编辑 谁能给我推荐一个示例代码 提前致谢 阿布舍克 如果您需要在网格顶部添加表单编辑按钮 您应该使用toppager truejqGrid
  • std.regex.regex 的返回值?

    我正在尝试编写一个函数 它接受一个输入字符串 一个正则表达式 由std regex regex来自原始字符串 和错误消息字符串 并尝试使用正则表达式匹配输入字符串中的某些内容 如果没有匹配则显示错误消息 到目前为止我想出了以下签名 stri
  • 从 Web api 返回 JsonResult,不带其属性

    我有一个 Web API 控制器 从那里我从一个操作返回一个 JSON 对象 我这样做是这样的 public ActionResult GetAllNotificationSettings var result new List
  • Paypal支付:在webview中加载paypal时如何获取成功请求

    Edit paypal登录后 我可以成功完成交易 但我需要匹配成功网址在 paypal 中验证两个 url 是否相同 然后显示成功的 toast 消息 但我没有从付款中获得成功网址 所以我无法匹配它 下面我发布了相关代码 WebActivi
  • 会话在 Firefox 中的通用处理程序 .ashx 中不起作用

    我创建了实现 IRequiresSessionState 的 ashx 因此我可以在该 ashx 中创建会话变量 它在 IE 中工作 但在 Firefox 中不起作用 当从其他页面访问此会话变量时 它为 NULL 任何想法 谢谢 也许您不允
  • Jasper Reports:如何编译子报表

    我有一个独立的应用程序 它的职责之一是获取 jrxml 文件的路径并编译它 我可以毫无问题地执行此操作 直到出现带有子报表的报表 其中主报表的编译不会编译其任何子报表 从而导致稍后找不到子报表 jasper 文件 有什么办法可以 1 设置J
  • 无法从 AngularJS index.html 导航到 VueJS Web 应用程序

    我试图将 AngularJS 和 VueJS 项目合并在一起 因为我们需要从 AngularJS 应用程序内部调用在 VueJS 中设计的流程 为了将 AngularJS 和 VueJS 项目合并在一起 我将 Angular 和 Vue 的
  • objectDatasource 中的 SelectMethod 被多个 datapagerfield 多次调用

    好的 这是设置 我正在构建一个包含列表视图 数据分页器和 3 个数据分页器字段 2 x NextPreviousPagerField 1 x NumericPagerField 的页面 以及一个将所有这些组合在一起的对象数据源 一切都工作正
  • Java中构造函数的调用

    在 Java 完整参考 一书中 Demonstrate when constructors are called Create a super class class A A System out println Inside A s co
  • Apache ITK 与 Suexec

    使用有什么好处ITK模块而不是Suexec运行 Apache 服务器 想法是一样的 都是以所有者权限运行脚本 而不是nobody www or apache 是不是比较好用ITK有利于suexec 如果是这样 为什么 相比之下 安全性和性能
  • 不兼容,因为该组件声明了一个与 Java 11 兼容的组件,而使用者需要一个与 Java 10 兼容的组件

    在我的 build gradle 文件中 我升级了一个依赖项的版本 即 com db microservice commons 加载 gradle 更改后 我收到以下错误消息 gt Build file C Projects Contain
  • 我应该如何在 php 中使用 dom 获取这样的 div 内容?

    div是这样的 div style width 90 margin 0 auto color Black this is text severaltags div 我应该如何获取 div 的内容 包括在php中使用dom标签 假设你使用 P
  • 始终显示 ChartJS 自定义工具提示

    在遵循了这里和官方文档中的几个指南之后 我完全陷入困境 我有一些自定义工具提示 它们将根据自定义工具提示中的数据名称在其中显示 PNG 图形 我找到了几种隐藏工具提示的解决方案 或者将它们全部设置为始终显示 但它们似乎都没有按照我想要的方式
  • Android 中的 Firebase 实时数据库 setValue 不起作用

    我第一次尝试使用实时数据库 设置值功能对我不起作用 我已经通过以下方式更新了写作规则 rules read true write true 我的代码如下所示 Integer Age 24 FirebaseDatabase mDatabase
  • 在 C# 中缓冲字节数据

    我的应用程序从 TCP 套接字读取字节并需要缓冲它们 以便我稍后可以从中提取消息 由于 TCP 的性质 我可能会在一次读取中获得部分或多个消息 因此每次读取后我想检查缓冲区并提取尽可能多的可用完整消息 因此 我想要一个允许我执行以下操作的类
  • User.Identity.GetUserId() 方法在 Web Api 2 控制器中不起作用

    在常规控制器中 以下代码有效 HttpPost public ActionResult Custom string name User Identity GetUserName string id User Identity GetUser
  • 如何通过 for 循环从 C 函数返回表的表到 Lua

    我有一个std list对象 我想给 Lua 一个返回其多维位置的函数 所以我需要创建一个表的表 1 2 3 512 1 2 3 512 512 lua newtable L for int i 0 i lt 512 i lua newta