【问题标题】:Allocating memory on heap in python [duplicate]在python中的堆上分配内存[重复]
【发布时间】:2014-01-06 07:06:04
【问题描述】:

python 支持动态内存分配吗? (类似于malloc()calloc() 中的c) 如果是,如何为heap上的对象分配内存?

【问题讨论】:

  • 您需要动态分配什么?
  • 这里有东西可以参考:docs.python.org/2/c-api/memory.html
  • @thefourtheye:嗯,我在 C++ 项目中使用了动态内存分配。我需要知道我是否可以使用 python 做同样的事情。
  • 对象的内存在 Python 中自动分配和回收。这不是你通常需要关心的管理,只是要确保你不会一次尝试使用太多。
  • 高级语言的好处之一是它抽象了这些类型的考虑。你无法控制它们,也不应该想要。实现今天以一种方式做事,明天可能又是另一种方式。如果您绝对需要控制这一点,那么您选择了错误的工具(或者需要非常了解所选实现的内部结构)。

标签: python


【解决方案1】:

通常,您不必担心 Python 中的内存分配问题。您可以将所有对象视为位于堆上;它们可能都放在堆上,尽管可能会有一些优化将一些放在堆栈上。

c = []

这将在堆上分配一个列表。当列表不再可以从任何引用链访问时,它将可用于垃圾收集,并且可能会被释放。更一般地说,任何创建对象的东西都可以安全地视为在堆上分配它。

【讨论】:

  • 你能引用一些引用吗?这样我们就可以继续阅读有关此内容的更多信息。
猜你喜欢
  • 2021-05-10
  • 2015-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
  • 2023-03-06
  • 2018-02-04
相关资源
最近更新 更多