NewStringUTF() 和释放内存
在将分配的字符串传递给它之后,我应该释放它吗?NewStringUTF()
我有一些类似于以下内容的代码:
char* test;
jstring j_test;
test = some_function(); // <- malloc()s the memory
j_test = (*env)->NewStringUTF(env, test);
free(test); // <- should this be here?
当我在将字符串传递给后释放它时,我得到一个错误。如果我删除该调用,则错误将消失。我做错了什么?NewStringUTF()
signal 11 (SIGSEGV), fault addr deadbaad
free()
我看到了相互矛盾的意见。有人说我应该自己释放它,有人说VM释放它,有人说VM不能释放它,你应该做奇怪的巫毒魔法来释放它。我很困惑。