![]() |
1
13
这是一个简单的规则,对于你做的每一个内存分配,你必须自己显式地释放内存。所以,你需要自己释放孩子的记忆。 |
![]() |
2
6
不,你得先把孩子的记忆释放出来。 |
![]() |
3
1
总是先释放子结构。编写将释放每种类型结构的函数以简化更高层次的生活,这可能是明智的。如果StructTypeA包含StructTypeB和StructTypeC,这将允许您简单地调用FreeStructTypeA(指向STA实例的指针),并让函数在释放StructTypeA本身之前释放所有子结构。 另一个相关的注意事项是,您最好尝试在valgrind中运行代码,以确保正确释放所有内存。 |
![]() |
4
0
这取决于自由之后结构发生了什么。只要结构在之后没有被引用
|
![]() |
5
0
可能根本不需要释放内存,因为当程序终止时,所有分配的内存都会被释放。如果希望节省内存使用,只需要调用free()。 |
![]() |
6
0
我认为值得一提的是,对于短期运行的命令行工具来说,这通常并不重要。程序运行完成后,操作系统将回收所有内存。但是,如果这是一个运行时间不确定的工具,您确实需要担心内存管理,其他的答案有很好的建议。 |
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |