일단 자바의 메소드는 아래와 같습니다.

public String returnSDCardPath(){
String sdcard = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
return sdcard;
}

sd카드의 패스를 받아오는 메소드인데요..
이것을 JNI에서 const char*로 리턴받아 사용하려고 합니다. 그래서..

Java -> JNI 연결을 해주고 아래와 같이 코딩했습니다.

const char* CallJavaDefaultReturnSDCardPath()
{
.......... //call method jstring javaString = (jstring)javaEnv->CallObjectMethod( g_javaUpdaterObj, javaMethod, num); char* nativeString = strdup(javaEnv->GetStringUTFChars(javaString, 0)); std::string result(nativeString); free(nativeString); javaEnv->ReleaseStringUTFChars(javaString, nativeString); return result.c_str();
}

jstring으로 위 메소드의 리턴값인 String을 받아와서 GetStringUTFChars로 변환하여, 
char*에 카피해주고, char*는 free해주는 코드입니다.
메모리릭을 피하기 위해 std::string에 다시 받아서 .c_str()로 리턴했구요..

문제는 이렇게 하면 쓰레기값이 나옵니다. std:string으로 받는 부분은 아닌 것 같습니다만 혹시
스트링을 쉽게 리턴받아 사용할 수 있는 방법을 아시는 고수님 계시면 알려주시면 감사하겠습니다. 좋은하루 되세요~!