使用 JNI 将 float* 转换为 jfloatArray

2023-12-07

我在 C++ 函数中获得了一个 float*,我需要将其转换为 jfloatArray 以返回到我的 Java 代码。

如何将 float* 转换为 jfloatArray?

Thanks


要将 float* 转换为 jfloatArray,可以使用 NewFloatArray,

您可以使用下面的代码:

  • 变量“data”只是简单的示例,因此您可以使用您的代码。
  • 另外,将 com_your_packagename 修改为您的真实包名称。
  • 您必须将包名称的点更改为下划线。 (com.your.packagename --> com_your_packagename)

jfloatArray Java_com_your_packagename_farrayFromJNI(JNIEnv *env, jobject thiz) {
    jfloatArray result;
    result = (*env)->NewFloatArray(env, 3);

    float* data;
    data = malloc(sizeof(float) * 3);
    data[0] = 123;  data[1] = 456;  data[2] = 789;

    (*env)->SetFloatArrayRegion(env, result, 0, 3, data);
    free(data);

    return result;
}

OR

extern "C"
{
JNIEXPORT jfloatArray JNICALL Java_com_your_packagename_farrayFromJNI(JNIEnv *env, jobject thiz) {

jfloatArray result;
    result = env->NewFloatArray(3);

    float* data;
    data = malloc(sizeof(float) * 3);
    data[0] = 123;  data[1] = 456;  data[2] = 789;

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

使用 JNI 将 float* 转换为 jfloatArray 的相关文章

  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • Android 如何将总天数准确更改为年、月、日?

    我正在做一个应用程序 该应用程序与根据给定的生日日期输入获取一个人的年龄有关 为此 我从下面的代码中获取从该日期到当前日期的总天数 String strThatDay 1991 05 10 SimpleDateFormat formatte
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • 卡片视图 单击卡片移至新活动

    我是 Android 编程新手 正在研究卡片布局 我想知道如何使其可点击 android clickable true android foreground android attr selectableItemBackground 我的卡
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • 通过电子邮件发送文本文件附件

    我正在尝试附加一个文本文件以便通过电子邮件发送 但每当我打开电子邮件应用程序时 它都会说该文件不存在 请帮助 Intent i new Intent Intent ACTION SEND i setType text plain i put
  • 使用 C# 读取 Soap 消息

  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData
  • Android 后台倒计时器

    我有一个 Android 应用程序 它管理一个倒计时器 类 CountDownTimer 它显示在应用程序屏幕中 以显示到达 00 00 还剩多少时间 我现在的问题是 当我按主页按钮或启动另一个应用程序时 应用程序 计时器不会在后台运行 所
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看
  • Git 实验分支还是单独的实验存储库?

    我正在开发一个 Android 应用程序 并且在整个开发周期中一直使用 Git 现在 我想构建并发布实验性功能 供人们尝试和安装 同时仍将原始的 稳定的应用程序安装在他们的设备上 现在 这意味着我需要使用不同的包名称 这会更改开发项目中的一

随机推荐

  • connectOutlet 中使用的 Ember 路由和 applicationController

    我有这个 ember 路由的工作示例http jsfiddle net C7LrM 102 我想像这样将 ApplicationController 更改为应用程序控制器http jsfiddle net C7LrM 102 并打电话 ro
  • spring批处理文件编写器直接写入亚马逊s3存储,无需PutObjectRequest

    我正在尝试将文件上传到亚马逊 s3 我不想上传 而是想使用 Spring Batch 从数据库读取数据并将文件直接写入 s3 存储 无论如何 我们能做到吗 Spring Cloud AWS 添加了支持Amazon S3服务通过资源加载器和s
  • 如何使用 jQuery 选择具有唯一文本内容的 XML 节点?

    我试图 以 jQuery 方式 从 XML 文档中提取唯一文本条目的列表 但遇到了困难 从这个 XML 中
  • Java 中引用变量读写的原子性

    首先引用来自 从JLS 8 秒 17 7 写入和读取引用始终是原子的 无论 它们是作为 32 位值还是 64 位值实现的 这是让我感到困惑的场景 给定 Employee 类和该类中名为calculate 的方法 该方法返回对 Employe
  • iOS 使用情况因 iPhone 尺寸不同而存在差异

    我有一个按钮 我希望根据所使用的 iPhone 类型具有不同的宽度 显然 7 Plus 的宽度更大 而 7 Plus 的宽度则更小 我单击按钮 单击 特征变化 选择 高度 更改每个 iPhone 的约束 然后单击 完成变化并构建 但它始终保
  • 从应用程序引擎访问计算引擎

    我有一个在计算引擎上运行的实例 它使用 Torch 来预测图像中的对象 我想制作一个简单的 Web 界面 用户可以使用该界面上传图像 将图像发送到服务器 计算引擎 预测对象并将列表返回给用户 在我的计算引擎 Ubuntu 14 04 中 这
  • 如何使用 distHaversine 函数?

    我试图在循环内使用 R 中的 distHavrsine 函数来计算数百行的某些纬度和经度坐标之间的距离 在我的循环中我有这样的代码 if distHaversine c file i long file i lat c file j lon
  • 如何用 C 语言制作自己的头文件?

    我尝试制作自己的头文件 但它不起作用vim says wget h 2 2 error invalid preprocessing directive ifndef WGET H wget h 3 2 error invalid prepr
  • 列出并连接到蓝牙设备

    我正在尝试让我的 Windows 平板电脑应用程序通过蓝牙与其他设备进行通信 首先我想扫描设备 然后我想连接到所选设备 我制作了一个简单的测试应用程序 空白首页并向其添加了一个按钮和一个列表框 然后我尝试了以下代码 我在其他地方找到了这样的
  • 如何删除HTTP响应头?

    我遇到一种情况 其中一个响应标头Content Disposition必须被删除 所以我想到编写一个servlet过滤器来做到这一点 但我意识到HttpServletResponse只有一个setHeader 方法 但没有方法删除它 我怎样
  • Django REST Framework 不以 PUT 形式显示值

    昨天我发了一个question并找到了解决该问题的方法 然而 该解决方案引发了另一个问题 请看一下问题 这样我就不必重复内容了 在可浏览 API 中 class name 的值不会显示在 PUT 表单中 呈现的 HTML 看起来像这样 di
  • 在oracle plsql中使用触发器填充代理键的优点

    我正在开发一个代码库 它具有以下类型的模式来生成表的代理键 create or replace TRIGGER TEST TRIG BEFORE INSERT OR UPDATE ON my table REFERENCING NEW AS
  • 更改 JavaFX 8 DatePicker 中的语言

    将 DatePicker 添加到我的应用程序时 我得到以下信息 我认为这是因为我在计算机上使用希伯来语 如何将 DatePicker 的语言更改为英语 您可以为 Java 虚拟机调用实例定义默认区域设置 Locale setDefault
  • 找到字符串中最长的单词

    目前正在尝试找出如何找到字符串中最长的单词 我的研究已经让我有所收获 我在 SO 上找到了一个代码 它显示了最长单词中的字母数量 Example function longest str var words str split var lo
  • FileUtils.mv 抛出 Invalid char \302 和 \255 异常

    当我运行下面的代码时CodeRunner或者从命令行我收到以下错误 Untitled rb 25 Invalid char 302 in expression Untitled rb 25 Invalid char 255 in expre
  • 从母版页调用部分视图时出现 ASP.NET MVC 堆栈溢出异常

    当我尝试从主控调用部分视图时 出现堆栈溢出错误 部分视图
  • Android 上的 OMA DRM v1 和 v2 支持

    Are OMA DRMAndroid 支持 v1 和 v2 吗 如果没有 有计划吗 是否有任何第三方库可以实现 OMA DRAM v1 和 v2 简短的回答是它不存在 但看起来有 3rd party 库 From 邮件列表 仅支持前向锁定
  • 片段单元测试:launchFragment 抛出 ClassCastException

    我试图在单元测试中调用 Fragment 类中的方法 但我不断收到错误java lang ClassCastException androidx fragment app testing FragmentScenario EmptyFrag
  • 我如何知道函数的参数数量?

    我们如何知道一个函数有多少个参数 例如 对于给定的函数f 我想做 if arg number f 0 f else if arg number f 1 f FALSE nargs 将检查函数内参数的数量 函数的参数数量 Edit forma
  • 使用 JNI 将 float* 转换为 jfloatArray

    我在 C 函数中获得了一个 float 我需要将其转换为 jfloatArray 以返回到我的 Java 代码 如何将 float 转换为 jfloatArray Thanks 要将 float 转换为 jfloatArray 可以使用 N