gpt4 book ai didi

c - 全局变量和函数封装

转载 作者:行者123 更新时间:2023-11-30 15:07:41 25 4
gpt4 key购买 nike

我有一个 C 程序,它在 main() 中动态分配内存,并将其地址提供给 main() 本地的指针变量。我更喜欢在函数中分配内存并使 main() 尽可能简单。为此,我必须使指针变量指向全局分配的内存。然而,由于函数使用了全局变量,函数的封装就会丢失,因此以后不能在其他程序中重用。是否有与此相关的最佳实践惯例?我应该维护简单的 main() 函数(其中包含最少的逻辑)还是不依赖于全局变量的独立函数。还有其他原因不使用全局变量吗?

最佳答案

您可以将指针变量返回给 main,而不是使其成为全局变量。请记住,从堆分配的内存仅在释放时才会超出范围,因此它们与函数内声明的局部变量不同,因此可以安全地将它们返回给调用者,然后调用者可以使用它,然后释放那个内存

重要的是,从堆分配的内存仅在返回到空闲存储时才超出范围,而在函数返回时则不一定。通过返回指向该内存位置的指针,您可以按照自己的意愿重用它,但始终记住释放它

我希望这对您有所帮助。

关于c - 全局变量和函数封装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38036841/

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