Walter Bright: > Ok, does this work: > > p = libc.malloc(100); > *p = 3; > > ? Or this: > > struct S { int a; char b; }; > S s; > libc.fillInS(&s);
The purpose of ctypes is to interface Python with C libs, it's a quite well designed piece of software engineering. This is how you can do what you ask for: from ctypes import POINTER, Structure, cdll, c_int, c_char libc = cdll.msvcrt # on Windows # libc = CDLL("libc.so.6") # on linux malloc = libc.malloc malloc.restype = POINTER(c_int) p = malloc(100) p[0] = 3 #----------------- class S(Structure): _fields_ = [("a", c_int), ("b", c_char)] s = S() # AttributeError: function 'fillInS' not found libc.fillInS(byref(s)) Bye, bearophile