मैं सी में कुछ मेमोरी आवंटित करना चाहता हूं और इसे जावा ऑब्जेक्ट इंस्टेंस से जोड़ता हूं, जैसे:जावा जेएनआई - जावा वस्तुओं के साथ सी में आवंटित संसाधनों को जोड़ना?
void configure(JNIEnv *object, jobject obj, ....) {
char *buf = new char[1024];
// associated <buf> with <obj> somehow
}
और बाद में जावा ऑब्जेक्ट कचरा इकट्ठा होने पर स्मृति को मुक्त करें - मैं इसे कॉल करके ऐसा कर सकता हूं Xzx16 से jNI फ़ंक्शन जावा ऑब्जेक्ट का अंतिम रूप() विधि।
सवाल यह है कि, मैं जावा ऑब्जेक्ट के साथ सी पॉइंटर कैसे जोड़ूं? ऑब्जेक्ट में long फ़ील्ड रखें और पॉइंटर को long पर डालें? क्या कोई बेहतर तरीका है?
डुप्ली: http://stackoverflow.com/questions/214699/jni-memory-management-using-the-invocation-api – falstro
इस प्रश्न में सॉर्ट करें कि सी ऑब्जेक्ट को कैसे संबद्ध करें इस पर कोई चर्चा नहीं है जावा उदाहरण प्रस्तुत उदाहरण में सूचक को लंबे समय तक डाला जाता है। क्या यह एकमात्र तरीका है? – Viktor