C++ 复制vector值到array,复制 array 到jintArray

 // [feature 1 ] copy vector value to array

vector<int> vec ;
for (int i = 0 ;i<10;++i)
{
    vec.push_back(i);
    printf("%d",vec.at(i));
}

int vecSize = vec.size();

if (vecSize == 0) return;

int *arr = new int[vec.size()];  //初始化数组大小  New 
for (int i = 0 ;i<vec.size();++i)
{
    arr[i] = vec.at(i);
    printf("%d",arr[i]);
}

JniMethodInfo t;

// [feature 2 ] copy array to jintArray

// [REF jni.h] void SetIntArrayRegion(jintArray array, jsize start, jsize len, const jint* buf)
jintArray ja= t.env->NewIntArray((jint)vecSize); //if (ja == NULL) return NULL;
jint bf[vecSize];
for (int i = 0;i<vecSize;++i)
{
  bf[i]=arr[i];
}
t.env->SetIntArrayRegion(ja,0,vecSize,bf)

t.env->CallStaticVoidMethod(t.classID, t.methodID, ja);
t.env->DeleteLocalRef(t.classID);

delete [] arr;                         // 释放

原文地址:https://www.cnblogs.com/idcenter/p/4726258.html