【发布时间】:2011-06-03 16:00:25
【问题描述】:
我的 Python 代码正在调用本机库(也是我编写的)中的 C 函数。该函数将两个字符串作为参数并将其响应作为字符串返回。 python 传递给 C 库的两个参数字符串只有 C 库读取,所以我不担心它们的内存管理。 AFAIK,它们的内存将由 python 分配,并在 python 运行时看起来合适时释放。
但是,我知道 C 库返回的字符串的内存必须明确管理。我可以实现它的一种方法是:C 函数 callocs 一个字符数组,用答案填充它并从函数返回。 python 代码使用返回的字符串,并且应该在该字符串上调用 libc 的 free 或调用同一 C 库的另一个函数,该函数将负责释放内存。
还有其他方法可以做到这一点吗? ctype 是否提供任何实用函数来简化本地库返回的数据结构的内存释放?
【问题讨论】:
标签: python memory-management ctypes