Comment pointer sur les éléments d'une structure de types différents
Bonjour,
J'aimerais remplir une structure d'éléments de différents type en faisant une boucle.
Exemple de structure :
Code:
1 2 3 4 5 6 7
| struct Object{
char Name[20];
int Regulator;
int PID ;
float P ;
char Ext[10];
}; |
J'aimerais avoir un tableau de pointeurs contenant l'adresse de base de la structure et le décalage de chaque éléments.
pObject[0] => adr de base de la structure (Name) : 100 (par exemple)
pObject[1] => offset Regulator : 20
pObject[2] => offset PID : 22
pObject[3] => offset P : 24
pObject[4] => offset Ext : 28
Le but est d'avoir un tableau de structure et de pouvoir écrire :
pObject[0][0] = "blablabla" ;
*(pObject[0] + &pObject[0][1]) = 15 ;
*(pObject[0] + &pObject[0][2]) = 22 ;
*(pObject[0] + &pObject[0][3]) = 56.123 ;
*(pObject[0] + &pObject[0][4]) = "hahaha" ;
Bien entendu ce code ne fonctionne pas ! Problème de type !
Et .. Il faudrait que j'utilise memcpy() pour copier le bon nombre de byte.
D'où ma question...
De quel type déclarer mon tableau pObject de pointeurs ? char * ou void * ?
Comment calculer les offsets des éléments ?
Merci pour vos solutions
Stéphane