JNI 에서 배열 매개변수로 넘기기

현재 페이지를 로딩중입니다.
만약 페이지 로딩이 끝났는데 본문이 보이지 않는다면
광고차단 플러그인 때문이니 잠시 플러그인을 꺼주시면 감사하겠습니다.

The current page is loading.
If the page loading is over but the text is not visible
This is because of the ad blocking plugin, so please be sure to turn off the plugin for a while.

JNI 사용하면서 배열 넘겨서 내부에서 데이터 입력하는게 있는데 javah를 쓰면 알아서 적당한 타입으로 바꿔줌.

예를 들어 int[]를 사용하면 jintArray 로 바꿔줌.
인터넷 검색해보니 거의 대부분이 j변수타입Array 명이더군요.

문제는 이거 그냥 쓸수가 없더군요.
사유는 C 에서 배열은 연속된 메모리 배열이지만 자바에서 배열은유저 입장에선 연속된 배열이지만 실제 메모리상에선 그렇지 않다고 하더군요 그래서 사용하기 전에 해줘야 하는게 있습니다.

jintArray inPixels //매개변수로 들어오는것

jint *pInPixels;
int size;
jboolean isCopy = false;
 
size = env->GetArrayLength(inPixels);
pInPixels = env->GetIntArrayElements(inPixels, &isCopy);

//배열 사용
int aaa = pInPixels[0];
pInPixels[0] = 2;

env->ReleaseIntArrayElements(inPixels, pInPixels, 0); 

뭐 이정도 나머진 융통성을 발휘해서

크리에이티브 커먼즈 라이선스 Linsoo의 저작물인 이 저작물은(는)크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

댓글 남기기

이메일은 공개되지 않습니다.

This site uses Akismet to reduce spam. Learn how your comment data is processed.