Visual c++ 使用vlfeat时是否必须显式释放内存?

Visual c++ 使用vlfeat时是否必须显式释放内存?,visual-c++,memory-management,vlfeat,gmm,Visual C++,Memory Management,Vlfeat,Gmm,我正在使用VLFeat来训练高斯混合模型(GMM),我不确定在使用以下命令时是否应该手动释放内存: float *means = (float *) vl_gmm_get_means(gmm); float *covariances = (float *) vl_gmm_get_covariances(gmm); float *priors = (float *) vl_gmm_get_priors(gmm); 我是否必须手动编写如下代码 free(means); free(covarianc

我正在使用VLFeat来训练高斯混合模型(GMM),我不确定在使用以下命令时是否应该手动释放内存:

float *means = (float *) vl_gmm_get_means(gmm);
float *covariances = (float *) vl_gmm_get_covariances(gmm);
float *priors = (float *) vl_gmm_get_priors(gmm);
我是否必须手动编写如下代码

free(means);
free(covariances);
free(priors);

谢谢

我不知道“让Visual Studio完成它的工作”是什么意思

如果内存被分配,则需要释放。C++不是垃圾收集语言,所以所有内存分配/解除分配都是通过新的/删除(或MalC/Cree)显式的。 我从未使用过所讨论的库(VLFeat),但我在谷歌上搜索了它的内存分配函数。我猜,您应该使用

vl_free()
来释放库返回的内存。实现可能只是包装
free()
或其他函数,但通常对于这样的库,应该使用库函数来管理从库返回的内存


vl_free()
的文档说明:此函数释放由vl_malloc、vl_calloc或vl_realloc分配的内存块。概要与POSIX malloc函数相同。

谢谢。但我不确定函数
vl_gmm_get_是什么意思(gmm)
已经实现,因为它是一个内置函数,而且源代码不可用……不过为了安全起见,我还是可以尝试
vl_free
任何东西。。。