I am starting to experiment with ctypes. I have a function which returns a pointer to a struct allocated in heap memory. There is a corresponding free function for that sort of struct, e.g.:
from ctypes import * cdll.LoadLibrary("libthing.so") c_thing = CDLL("libthing.so") class THING(Structure): _fields_ = [("name", c_char_p), ("value", c_int)] get_thing = c_thing.get_thing get_thing.restype = POINTER(THING) free_thing = c_thing.free_thing So I call get_thing() and get back this ctypes wrapper for a pointer to a thing. I can extract the name and value elements from the thing instance just fine: thing_p = get_thing() thing = thing_p.contents print thing.name, "=", thing.value Now I need to call free_thing. What do I pass it? thing_p? Some attribute of thing_p? Something else altogether? The ctypes module docs seem to be strangely silent on the question of freeing heap memory which you've received from the underlying library's functions. Thanks, Skip -- http://mail.python.org/mailman/listinfo/python-list