1487Fermer1489
FarewellLe 22/05/2010 à 12:56
Merci pour tout. smile


Pour changer, j'ai un warning àlakhon, et je ne sais pas ce que GCC veut dire. Ce qui m'emmerde, c'est que je dois faire qqchose de travers... sans m'en rendre compte.
J'ai ces déclarations :
module.h:

struct CUSTOM_DATA;

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

careers.h, inclus après module.h:

typedef struct
{
    uint16_t numEntries;
    ENTRY_CAREER* careersPtr;
} CUSTOM_DATA;

Et dans mon code, je fais ceci :
    uint16_t numberEntries = 0;
    MODULE_DATA* data;
    data = malloc (sizeof(MODULE_DATA));
    [...]
    data->customData = malloc (sizeof(uint16_t) + sizeof(ENTRY_CAREER*));
    data->customData->numEntries = numberEntries;

Et là, j'ai un dereferencing pointer to incomplete type à la dernière ligne...
Pourquoi ? Qu'est-ce que ça veut dire, déjà, un "type incomplet" ?
Ensuite, quand je caste (ce que je pense être inutile) comme ça :
((CUSTOM_DATA*)data->customData)->numEntries = numberEntries;
Ca marche nickel.

Evidemment, je foire un truc, mais quoi ? Je respecte bien mes structures dans mes déréférencements, ma variable data est bien typée etc... Que pasa ?