1491Fermer1493
FarewellLe 22/05/2010 à 13:23
Erf... j'arrive pas à m'en dépatouiller...

Je repars donc de ça :
struct CUSTOM_DATA;

typedef struct
{
    SDL_Surface* background;
    SDL_Rect bgPosition;
    int numIcons;
    ICON* iconList;
    struct CUSTOM_DATA* customData;
} MODULE_DATA;

MODULE_DATA est en fait une structure générique dont tous les membres sont utilisés par les MODULE :
typedef struct
{
    void (*unload)(MODULE_DATA* data);
    void (*manage)(MODULE_DATA* data);
    MODULE_DATA* data;
} MODULE;

Le CUSTOM_DATA* customData me permet en fait de dériver cette classe en fonction des modules (introduction, highscrores etc...) avec des données personnelles à chacune de ces classes.
Y a-t-il un problème à avoir alors un void* customData dans MODULE_DATA, que chaque MODULE va caster après en fonction de ce qu'il utilise pour ses propres besoins ?

En d'autres termes, suis-je toujours sûr d'avoir sizeof(void*) == sizeof(MODULE_TRUC_DATA*), MODULE_TRUC_DATA pointant sur une structure ou un simple buffer ?
Est-ce qu'un tel cast est toujours safe ?

Sasume : oui, j'ai ça dans le source incriminé, sachant qu'en fait, careers.h inclut déjà module.h :
#include    "module.h"
#include    "careers.h"