android jni传递结构体类型给c函数,返回结构体,怎么写啊

问题描述

android jni传递结构体类型给c函数,返回结构体,怎么写啊

android jni传递结构体类型给c函数,返回结构体,怎么写啊
c方法:OutAnalyseResultPacket* EcgMainPro(InEcgPacket* pPacKet)
参数和返回值都是结构体类型

解决方案

参考:
http://blog.sina.com.cn/s/blog_414e587f0101411f.html
另外,C那里返回结构体指针不太好,因为你没有机制去释放这些内存。容易内存泄漏。除非特别小心。

解决方案二:

最好是传基本数据类型,因为你是跨语言传递数据,最好用简单类型,比较不容易出错

时间: 2024-11-18 12:35:44

android jni传递结构体类型给c函数,返回结构体,怎么写啊的相关文章

结构体类型数据作为函数参数(三种方法)_C 语言

(1)用结构体变量名作为参数. 复制代码 代码如下: #include<iostream>#include<string>using namespace std;struct Student{ string name; int score; };int main(){ Student one; void Print(Student one); one.name="千手"; one.score=99; Print(one); cout<<one.nam

结构体类型指针做函数参数(C++)

因为用到了这块,所以转了一篇文章. 原文地址http://blog.sina.com.cn/s/blog_5f777ddd0100chbl.html 设有学生情况登记表如图所示,用选择排序法对该表按从小到大进行排序. 学生情况登记表 学号num 姓名name[8] 性别sex 年龄age 成绩score 101 zhang m 19 95.6 102 zhao m 20 89.0 103 wang f 18 96.5 104 shan m 20 94.0 105 chen f 20 76.5 1

求助!!调用读卡器接口,传递的参数类型是否有误,返回结果都是失败!!!

问题描述 我要调用一个读卡器里的一个接口方法,原型是:EXPORTAPIint_stdcallRdrReadCardByNetwork(char*port,char*inmachineid,char*outresult); 方法说明:参数名传输方向参数类型参数意义取值说明portINchar*串口名形如:"COM1"或"com1"inmachineidINChar*读卡器IDoutresultOUTChar*输出的数据他们那边提供的demo是这样的写的RdrRead

结构体类型定义的一般式

struct 结构体名 { 类型名1 域名1; 类型名2 域名2; 类型名3 域名3; 类型名4 域名4; ... ... 类型名n 域名n; }; 说明:结构体类型是用户自定义类型,使用时需要按照规定的 形式定义类型标识符,然后才能定义相应类型的变量. 例如: struct student /**定义了一个结构体类型,类型标识符为 struct student,其中包含5个域, 分别用num代表姓名,sex代表性别,age代表年龄,score代表成绩 **/ { int num; char n

关于返回结构体的函数

[前言]写作本文,源于最近回复的 <汇编中函数返回结构体的方法> 一文.在网络上也已经有一些相关文章和相关问题,有的文章已经给出了一部分结果,但总体而言还缺少比较重要的结论.本文以分析 VC6 编译器,32 位架构为主来重复性分析这个话题.   (一)不超过 8 bytes 的小结构体可以通过 EDX:EAX 返回. 本文的范例代码取材于 <汇编中函数返回结构体的方法>一文,并在此基础上进行修改和试验.要研究的第一份代码如下,定义一个不超过 8 bytes 的小结构体,不超过 8

c语言-C语言函数的形参(结构体类型)和实参类型(指针)可以不同吗?

问题描述 C语言函数的形参(结构体类型)和实参类型(指针)可以不同吗? int numstus; int lens; student pointer; void main() { int i=1; char str[2]; lens=100; pointer=(student *)malloc(lens*LEN); /分配内存*/ numstus=0; welcome(); /*欢迎界面*/ while(i>0) { i=menu_select(); /*控制菜单*/ switch(i) { c

C++动态分配和撤销内存以及结构体类型作为函数参数_C 语言

C++动态分配内存(new)和撤销内存(delete) 在软件开发过程中,常常需要动态地分配和撤销内存空间,例如对动态链表中结点的插入与删除.在C语言中是利用库函数malloc和free来分配和撤销内存空间的.C++提供了较简便而功能较强的运算符new和delete来取代malloc和free函数. 注意: new和delete是运算符,不是函数,因此执行效率高. 虽然为了与C语言兼容,C++仍保留malloc和free函数,但建议用户不用malloc和free函数,而用new和delete运算

结构体 赋值 初始化-结构体类型的指针初始化和赋值问题

问题描述 结构体类型的指针初始化和赋值问题 编程的时候我定义了一个结构体,结构体有几个变量的值我必须要赋初值,因为循环得用.结构体这样定义:typedef struct{ BYTE stream_Type; unsigned short PID; unsigned short InfoDescrip;}M_PICE;用的时候:M_PICE* p_Mpice = NULL;p_Mpice->InfoDescrip = 0;运行到上一句就报错Unhandled exception in DVB.ex

c语言-结构体指针数组指向结构体类型数组的问题

问题描述 结构体指针数组指向结构体类型数组的问题 #include<stdio.h> #include<stdlib.h> struct student { char num; char name[10]; int grade; }; void swap(struct student *p[],int n) { int k,m,i,j; struct student *d; k=0;m=n-1; while(k<m) { j=m-1;m=0; for(i=k;i<=j;