我有一个C函数,它在传递到的地址分配内存,并通过Python访问。指针内容在C代码中确实包含一个结构数组,但我无法使ctypes在第0个元素之外正确访问数组。如何获得正确的内存偏移量以访问非零元素?Python的ctypes.memset如果我试图使用他们的ctypes.memset功能。在typedef struct td_Group
{
unsigned int group_id;
char groupname[256];
char date_created[32];
char date_modified[32];
unsigned int user_modified;
unsigned int user_created;
} Group;
int getGroups(LIBmanager * handler, Group ** unallocatedPointer);
############# python code below:
class Group(Structure):
_fields_ = [("group_id", c_uint),
("groupname", c_char*256),
("date_created", c_char*32),
("date_modified", c_char*32),
("user_modified", c_uint),
("user_created", c_uint)]
myGroups = c_void_p()
count = libnativetest.getGroups( nativePointer, byref(myGroups) )
casted = cast( myGroups, POINTER(Group*count) )
for x in range(0,count):
theGroup = cast( casted[x], POINTER(Group) )
# this only works for the first entry in the array:
print "~~~~~~~~~~" + theGroup.contents.groupname