【发布时间】:2009-09-21 10:12:19
【问题描述】:
我正在用 Ctypes 为 Python 中的 C 库编写一个小型包装器,我不知道从 Python 分配的结构是否会在超出范围时自动释放。
例子:
from ctypes import *
mylib = cdll.LoadLibrary("mylib.so")
class MyPoint(Structure):
_fields_ = [("x", c_int), ("y", c_int)]
def foo():
p = MyPoint()
#do something with the point
foo()
在 foo 返回后,那个点还会“活着”吗?我必须打电话给clib.free(pointer(p))吗?还是 ctypes 提供了一个函数来释放为 C 结构分配的内存?
【问题讨论】: