Я пишу небольшую оболочку для библиотеки C на Python с Ctypes, и я не знаю, будут ли структуры, выделенные из 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?