title: Access array of c-structs using Python ctypes
body: <p>I have a C-function that allocates memory at the address passed to and is accessed via Python. The pointer contents does contain an array of structs in the C code, but I am unable to get ctypes to access the array properly beyond the 0th element. How can I get the proper memory offset to be able to access the non-zero elements? Python's ctypes.memset is complaining about TypeErrors if I try to use their ctypes.memset function.</p>
  
  <pre><code>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
  </code></pre>
  
  <p>Related: <a href="https://stackoverflow.com/questions/8314275/access-c-char-p-array-256-in-python-using-ctypes">Access c_char_p_Array_256 in Python using ctypes</a></p>