struct pointing to another struct?

inhahe inhahe at gmail.com
Fri Aug 13 21:54:52 CEST 2010


say i have this definition:

   1 typedef struct SDL_Surface {
   2     Uint32 flags;                           /* Read-only */
   3     SDL_PixelFormat *format;                /* Read-only */
   4     int w, h;                               /* Read-only */
   5     Uint16 pitch;                           /* Read-only */
   6     void *pixels;                           /* Read-write */
   7     SDL_Rect clip_rect;                     /* Read-only */
   8     int refcount;                           /* Read-mostly */
   9
  10   /* This structure also contains private fields not shown here
*/
  11 } SDL_Surface;

notice two pointers, format and pixels.
say format has this definition.


   1 typedef struct {
   2   SDL_Palette *palette;
   3   Uint8  BitsPerPixel;
   4   Uint8  BytesPerPixel;
   5   Uint8  Rloss, Gloss, Bloss, Aloss;
   6   Uint8  Rshift, Gshift, Bshift, Ashift;
   7   Uint32 Rmask, Gmask, Bmask, Amask;
   8   Uint32 colorkey;
   9   Uint8  alpha;
  10 } SDL_PixelFormat;

so say i want to create a mock sdl handle and pass it to some library
function that requires an sdl handle. (would it even work? would i
need to use an SDL_SWSURFACE?)

so i make the pixelformat data using struct.pack, and make the surface
data using struct.pack, but how do i link the surface data to the
pixelformat data?  if i just use id() it'll give me the memory address
of the "box" for the string and not the string data itself.  thanks.



More information about the Python-list mailing list