小编Pel*_*oya的帖子

我是否“必须” free() 静态动态分配的指针?

我有一个带有 for 循环的函数,在循环内部(并且取决于输入)某些变量使用以下命令初始化一次(第一次)malloc()

这些变量的声明如下:

static double *vector;

然后我使用分配内存

malloc(size*sizeof(double));
Run Code Online (Sandbox Code Playgroud)

问题是:

我是否必须在被调用函数内循环的最后一次迭代中释放这些变量?

更新:也许我对某些人的解释是错误的。问题是被调用的函数(func_A)根据主函数的输入为其使用的某些向量分配内存。然后,这个 func_A 在主循环中被多次调用。这就是为什么我将变量定义为静态变量,以便每次调用 func_A 时都不会定义它们(出于时间消耗的问题),因为尺寸在整个运行过程中不会改变。这些变量是静态的但不是全局的,所以我无法将它们从 main 中释放(对吗?)。

c malloc free dynamic-memory-allocation

3
推荐指数
1
解决办法
3795
查看次数

标签 统计

c ×1

dynamic-memory-allocation ×1

free ×1

malloc ×1