一般是需要release的 这样避免memory leak比如
char buf[128];
const char *str = env->GetStringUTFChars(prompt, 0);
printf("%s", str);
(*env).ReleaseStringUTFChars(prompt, str);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gets(buf);
return (*env).NewStringUTF(buf);
char buf[128];
const char *str = env->GetStringUTFChars(prompt, 0);
printf("%s", str);
(*env).ReleaseStringUTFChars(prompt, str);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gets(buf);
return (*env).NewStringUTF(buf);
解决方案 »
- 可以使用for each循环同时遍历多个数组么?
- java执行mysqldump命令的问题
- 用Eclipse打包java工程时,为什么我用的图片和文件不能被打包?
- 是内存溢出吗??
- 如何在一个提供多线程功能的Applet上输出1到20的数字?
- 通过apache的common-net.jar写的ftp上传,上传后的图片都不能用,请教各位大虾如何解决?老弟跪求了!
- 新手求教 System.out.println与System.out.print区别
- 有谁用过jakarta-poi开发过什么?
- 请教JDBC数据库连接查询的问题
- vb能访问mysql数据库吗???
- javabean的get、set方法怎么实现对类的封装和细节隐藏的?
- 【IReport中,如何将汉字正常转换成pdf文挡?】
return env->NewStringUTF(buf);
就可以不用释放了,只要不是从参数中接收一个字符串来楼上的兄弟env->为什么要转换为(*env).呢?
你转换成值了,调用时又要去寻找地址,转换成指针
return env->NewStringUTF(buf);
就可以不用释放了,只要不是从参数中接收一个字符串来
--------------------------
同意,从一个jstring转成char*,要释放资源直接返回
return env->NewStringUTF(buf);
就可以不用释放了,只要不是从参数中接收一个字符串来
-------------
他是c用太多了 呵呵