我在java中創建一個字節數組並通過引用jni函數來傳遞它。這是我在一個循環中執行的,並且有時會在jni中出現內存不足錯誤。我想知道如果java在每次迭代時自動釋放數組,或者因爲它傳遞給jni函數,它不會?從內存中釋放jni引用
JNI代碼(bOldArray是java字節數組我傳遞給JNI作爲參數)
len = (*env)->GetArrayLength(env,bOldArray);
char *oldBuff = (char *)calloc(sizeof(char),MAX_SIZE);
jbyte* bytes = (*env)->GetByteArrayElements(env,bOldArray,0);
memcpy(oldBuff,bytes,len);
(*env)->ReleaseByteArrayElements(env,bOldArray,(jbyte *)bytes,0);
在此的任何更新的共享/靜態緩衝器? – jogabonito
仍然無法找到錯誤。 – VBK