我的C很生疏。考虑上面的代码:我必须释放内存用于buf或每次调用使用相同的buf数组吗?什么是最佳做法?
JNIEXPORT jstring JNICALL Java_test_version
(JNIEnv *env, jobject obj, jint handle) {
struct VersionNumber ver;
versionNumber_get((void *) handle, &ver);
char buf[30];
snprintf(buf, 30, "%d", ver.num);
return (*env)->NewStringUTF(env, buf);
}
答案 0 :(得分:2)
buf
是一个堆栈变量,它会在方法返回时被回收,没有什么可以在这里做的。
另外,因为它是一个堆栈变量,它将被分配给每个方法调用。