如题,我已经能传基本数据结构数组的指针了,但是复杂结构体的操作起来是不一样的,于是又经过半天的研究,试错,最后找到了这样的方法。
c库中的函数
struct Obj{
int n;
double d;
}
DLL_EXPORT void test(int n,Obj *obj);//n数组长度,obj数组指针
java中这样弄
Obj.ByReference ob=new Obj.ByReference();
Obj[] oc=(Obj[])ob.toArray(2);//这样ob就自己申请到两个结构体长度的空间,而给oc赋值就是操作这段内存
for(int i=0;i<2;++i){
oc[i].n=i+1;
oc[i].d=(i+1)*0.1;
}
将ob传给test(),done!