gpt4 book ai didi

c - 使用指针的二维数组 - 内存泄漏

转载 作者:行者123 更新时间:2023-11-30 19:08:24 24 4
gpt4 key购买 nike

double* sol = (double*) calloc(n_samp, sizeof(double));
double** m = (double**) calloc(n_samp, sizeof(double*));
for (int i = 0; i < n_samp; i++){
*(m+i) = (double*) calloc((n_samp + 1), sizeof(double));
}

我正在使用上面的内容生成一个二维数组。它工作正常,但 valgrind 告诉我存在内存泄漏。释放这里的内存的正确方法是什么?

最佳答案

要释放内存,您必须执行与分配内存时完全相反的操作。

从您在循环内创建的动态元素开始:

for (int i = 0; i < n_samp; i++){
free( *(m+i) );
}

然后做剩下的事情:

free( m );
free( sol );

关于c - 使用指针的二维数组 - 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45256601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com