变量所占内存的回收方式取决于该变量的存储类型(storage class),对于你讲的结构体而言:
- 如果是在函数内定义的,称为 局部 变量,存储在栈空间内。它的空间会在函数调用结束后自行释放。
- 如果是全局变量,存储在DATA段或者BSS段,它的空间是始终存在的,直至程序结束运行。
- 如果是new或者malloc得到的空间,它存储在HEAP(堆)中,除非手动delete或free,否则空间会一直占用直至进程结束。
更多关于存储类型的信息,可以参考这篇博客: http://harttle.github.io/2015/07/22/memory-segment.html