Désolé une petite question de plus pour la forme:)
Je comprends pas comment est organisé la mémoire lors d'un malloc et compagnie : je m'explique.
J'ai crée une structure qui contient exclusivement des pointeurs vers une sous structure; cette super structure est nommée sTop :
struct sTop{
struct sData * u12Main;
struct sData * u23Main;
struct sData * u31Main;
struct sData * v1Main;
struct sData * v2Main;
struct sData * v3Main;
struct sData * freqMain;
struct sData * u12Gen;
struct sData * u23Gen;
struct sData * u31Gen;
struct sData * v1Gen;
struct sData * v2Gen;
struct sData * v3Gen;
struct sData * freqGen;
};
J'alloue de la mémoire a cette structure comme suit :
struct sTop * pTop = (struct sTop * ) malloc (sizeof (struct sTop ));
Lorsque j'utilise printf pour savoir la taille de ma structure, Il me renvoit 56 ce qui corresponds à 4*14 , mon nombre de pointeurs de 4 bytes. Jusque la rien d'anormale
J'ai un pointeur pNextStruct que j'ai initialisé au début de ma structure :
struct sData * pNextStruct = NULL;
pNextStruct = pTop;
Mais voila le problem, quand j'essaye de parcourir les éléments de ma super structure, moi pointeur fait des pas trop grand :
pNextStruct++;
Il passe de 0x00343440 à 0x00343454 alors que pour moi il aurait du aller à 0x00343444.
Pour info voici la soustructure auquel les pointeurs de ma superStructure pointent.
struct sData{
char * label;
char * value;
char frame[9];
}
struct sData * pSubStruct = (struct sData*) malloc( sizeof(struct sData ));
Ce pointeur pSubStruct est retourné par un fonction et chaque pointeur de ma super Structure récupere l'adresse pointée de celui ci.
Merci bien.