1

JNIについて質問があります。

JNIEXPORT jintArray JNICALL Java_MainClass_intArrayMethod
    (JNIEnv *env, jobject obj, jintArray array) {
    jintArray result;
    jsize len = (*env)->GetArrayLength(env, array);
    jint *body =(*env)->GetIntArrayElements(env, array, 0);
...
}

いくつかのループを実行してbodyの値を変更してから、次のことを実行できますか?

result = (*env)->NewIntArray(env, nb_of_subscribers*tags);
(*env)->SetIntArrayRegion(env, result, 0, tags*nb_of_subscribers, body);
(*env)->ReleaseIntArrayElements(env, array, body, 0);

つまり、コンテンツを変更できbodyますか?

float *max = (float*)malloc(sizeof(float)*tags);
for(k=j;k<nb_of_subscribers*tags;k=k+tags)
if (body[k]>max[j%tags]) max[j%tags]=body[k];
for(k=0;k<nb_of_subscribers*tags;k=k+tags)
body[k]=(float)(body[k]/max[j%tags]);

体の価値は変わりません。それをオーバーライドする方法は?

4

2 に答える 2

1

本文の内容を変更できますか?

もちろんですが、それはあなたが本当にやりたいことですか?とにかく新しい配列を返しますが、なぜ引数配列も変更するのですか?

于 2012-04-05T02:05:14.443 に答える
0

bodyの値は、制限なしに自動的に上書きされます。

于 2012-04-05T09:15:25.630 に答える