【发布时间】:2014-12-15 14:57:26
【问题描述】:
考虑以下代码:
MyClass.java:
public class MyClass {
public native void createMemoryLeak();
public static void main(String[] args) {
MyClass myObject = new MyClass();
myObject.createMemoryLeak();
}
}
MyClass.c:
#include <MyClass.h>
JNIEXPORT void JNICALL Java_MyClass_createMemoryLeak(JNIEnv *env, jobject obj)
{
char * leaked_array = malloc(sizeof(char)*100000); // This is going to be leaked
}
MyClass 有一个本地方法 createMemoryLeak()。在此方法中,使用malloc() 分配了一个字符数组。但是,此内存并未明确释放。
我想知道当方法超出范围时这个内存会发生什么。 这段代码会造成内存泄漏吗?
【问题讨论】:
标签: java memory-leaks java-native-interface