gpt4 book ai didi

c - 在 C 中释放内存的模式?

转载 作者:太空狗 更新时间:2023-10-29 14:53:46 27 4
gpt4 key购买 nike

我目前正在开发一个基于 C 的应用程序,我对以非反模式的方式释放内存有点困惑。我是一名内存管理爱好者。

我的主要问题是我在各种不同的范围内声明内存结构,这些结构通过引用传递给其他函数。其中一些函数可能会抛出错误并退出 ()。

如果我在一个范围内退出(),但并非所有数据结构都在该范围内,我该如何释放我的结构?

我觉得我需要将它全部包装在一个伪异常处理程序中并让处理程序处理释放,但这仍然看起来很丑陋,因为它必须知道我可能需要或不需要释放的所有内容.. .

最佳答案

考虑对 malloc 进行包装,并以规范的方式使用它们。跟踪您分配的内存(可能在链表中)并使用包装器退出以枚举您的内存以释放它。您可以还可以使用链表结构的附加参数和成员来命名内存。在分配的内存高度依赖于范围的应用程序中,您会发现自己正在泄漏内存,这可能是转储内存并对其进行分析的好方法。

更新:应用程序中的线程会使这变得非常复杂。请参阅有关线程问题的其他答案。

关于c - 在 C 中释放内存的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/692119/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com