0
我有兩個數組:如何檢查兩個JNI數組指向同一個內存位置?
auto inputArray = reinterpret_cast<jbyteArray>(mainEnv->NewGlobalRef(imageDataArray));
auto output = reinterpret_cast<jfloatArray>(mainEnv->NewGlobalRef(data));
當我嘗試:
auto input = env->GetByteArrayElements(inputArray, nullptr);
我得到這個錯誤:
「JNI檢測到的錯誤應用:嘗試獲取字節基本數組元素用浮子式[]的目的」
我的猜測是‘inputArray’(字節陣列)指向的相同的存儲器位置‘輸出’(float數組)。
我該如何檢查?
鑄造'jobject'使得它不會改變基本的Java對象的類型沒有什麼意義。如果您確實需要以非實際類型的方式訪問數據,則應在獲取本機指針後執行轉換。 – Michael
這些是Java中的真實類型。我正在施放他們,因爲我想在本地環境中與他們一起工作。所以「inputArray」是兩個環境中的一個字節數組。我已經檢查過很多次了,所以我不能再數了。 :( –
好吧,我建議你寫一個完整的最小代碼示例,可以用來重現這個問題。如果這個例子沒有最終出現同樣的問題,那麼你需要確定它與真實的不同之處碼。 – Michael