开发者社区> 问答> 正文

C语言销毁一个结构体不free直接等于NULL可以吗

各位大神 如果我一个结构体 的某个属性存了1000个数据 然后现在不想用了 我直接 把这个结构体的这个属性 == NULL 是不是就表示 这个结构体 又成了一个全新的结构体了 但是 我并没有free 那么是不是 堆内存里面 始终有一块区域没有被回收呢?

展开
收起
a123456678 2016-06-08 19:41:37 2442 0
1 条回答
写回答
取消 提交回答
  • 变量所占内存的回收方式取决于该变量的存储类型(storage class),对于你讲的结构体而言:

    如果是在函数内定义的,称为 局部 变量,存储在栈空间内。它的空间会在函数调用结束后自行释放。
    如果是全局变量,存储在DATA段或者BSS段,它的空间是始终存在的,直至程序结束运行。
    如果是new或者malloc得到的空间,它存储在HEAP(堆)中,除非手动delete或free,否则空间会一直占用直至进程结束。

    2019-07-17 19:32:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载