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

佩拉约·佩尼亚罗亚(PelayoPeñarroya)

我有一个带for循环的函数,并且在循环内部(并取决于输入),使用(一次)首次对某些变量进行了初始化malloc()

这些变量的声明如下:

static double *vector;

然后我使用分配内存

malloc(size*sizeof(double));

问题是:

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

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

拔示巴

您应该始终malloc与通话之间保持平衡free

对于您的情况,可以在知道不再需要时调用它vector

如果这不切实际,那么您可以随时致电atexit; 传递给它一个指向合适函数的指针,该函数将free存储在内存中。参见http://www.tutorialspoint.com/c_standard_library/c_function_atexit.htm

尽管您通常可以依靠操作系统来为程序终止进行清理,但是依靠它是很粗糙的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

访问静态或动态分配的内存是否更快?

来自分类Dev

如何判断指针/地址是否动态分配?

来自分类Dev

动态分配/指针/类问题 - 有什么建议吗?

来自分类Dev

在C中交换动态分配的变量时,临时变量是否需要free?

来自分类Dev

是否可以为动态分配的静态成员变量跳过删除操作?

来自分类Dev

当对象不是动态分配的(不是指针)时,是否可以从超类对象转换为子类?

来自分类Dev

当我可以从静态实现动态分配时,为什么需要使用动态内存分配?

来自分类Dev

您是否必须创建多个 header.php 文件才能拥有动态标头?

来自分类Dev

是否动态分配字符串?

来自分类Dev

是否动态分配PCIe通道?

来自分类Dev

我无法动态分配结构

来自分类Dev

我如何动态分配属性

来自分类Dev

没有vtables的C ++动态分配

来自分类Dev

我是否必须释放所有指向相同结构的指针?

来自分类Dev

使用c_str()返回的指针删除动态分配的std :: string是否会导致C ++中的内存泄漏?

来自分类Dev

如何在c中将元素移动到动态分配的char **指针的右侧?我在正确的轨道上吗?

来自分类Dev

`/tmp/Main' 中的错误:free():下一个大小无效(快速):没有动态分配

来自分类Dev

动态分配和指针

来自分类Dev

我可以同时拥有动态和静态网站吗?

来自分类Dev

动态分配的内存必须在C ++中删除吗?

来自分类Dev

为什么我必须为 QLabel 动态分配内存才能使其工作?

来自分类Dev

C ++中是否存在一种机制,可以在不动态分配内存的情况下从基类指针制作派生类的完整副本?

来自分类Dev

从动态分配的解引用指针默认初始化非常量引用函数参数是否会导致内存泄漏?

来自分类Dev

动态分配“ char”冗余时是否使用“ sizeof(char)”?

来自分类Dev

std :: pair是否会破坏其动态分配的对象?

来自分类Dev

是否可以为Ubuntu创建动态分配的分区?

来自分类Dev

是否可以动态分配 Google Compute Engine 实例?

来自分类Dev

请帮助我释放此动态分配的数组

来自分类Dev

如何在我指向的地址上动态分配内存?

Related 相关文章

  1. 1

    访问静态或动态分配的内存是否更快?

  2. 2

    如何判断指针/地址是否动态分配?

  3. 3

    动态分配/指针/类问题 - 有什么建议吗?

  4. 4

    在C中交换动态分配的变量时,临时变量是否需要free?

  5. 5

    是否可以为动态分配的静态成员变量跳过删除操作?

  6. 6

    当对象不是动态分配的(不是指针)时,是否可以从超类对象转换为子类?

  7. 7

    当我可以从静态实现动态分配时,为什么需要使用动态内存分配?

  8. 8

    您是否必须创建多个 header.php 文件才能拥有动态标头?

  9. 9

    是否动态分配字符串?

  10. 10

    是否动态分配PCIe通道?

  11. 11

    我无法动态分配结构

  12. 12

    我如何动态分配属性

  13. 13

    没有vtables的C ++动态分配

  14. 14

    我是否必须释放所有指向相同结构的指针?

  15. 15

    使用c_str()返回的指针删除动态分配的std :: string是否会导致C ++中的内存泄漏?

  16. 16

    如何在c中将元素移动到动态分配的char **指针的右侧?我在正确的轨道上吗?

  17. 17

    `/tmp/Main' 中的错误:free():下一个大小无效(快速):没有动态分配

  18. 18

    动态分配和指针

  19. 19

    我可以同时拥有动态和静态网站吗?

  20. 20

    动态分配的内存必须在C ++中删除吗?

  21. 21

    为什么我必须为 QLabel 动态分配内存才能使其工作?

  22. 22

    C ++中是否存在一种机制,可以在不动态分配内存的情况下从基类指针制作派生类的完整副本?

  23. 23

    从动态分配的解引用指针默认初始化非常量引用函数参数是否会导致内存泄漏?

  24. 24

    动态分配“ char”冗余时是否使用“ sizeof(char)”?

  25. 25

    std :: pair是否会破坏其动态分配的对象?

  26. 26

    是否可以为Ubuntu创建动态分配的分区?

  27. 27

    是否可以动态分配 Google Compute Engine 实例?

  28. 28

    请帮助我释放此动态分配的数组

  29. 29

    如何在我指向的地址上动态分配内存?

热门标签

归档