J’ai commencé à me sentir à l’aise avec C puis je suis tombé sur le casting. Si j’ai les éléments suivants définis dans un fichier * .h
struct data { int value; char *label; };
et cela dans un autre fichier * .h
# define TYPE void*
Comment transtyper le pointeur vide sur la structure afin de pouvoir utiliser une variable “TYPE val” transmise à des fonctions? Par exemple, si je veux utiliser la valeur indiquée par TYPE val, comment puis-je la convertir pour pouvoir la transmettre à une autre fonction?
(struct data*)pointer
jettera un pointeur à annuler en un pointeur pour struct data
.
Le typage du pointeur vide sur une structure peut être fait en suivant
void *vptr; typedef struct data { /* members */ }tdata;
pour cela, nous pouvons transtyper typé à struct nous allons dire que vous voulez envoyer ce vptr en tant que variable de structure à une fonction
puis
void function (tdata *); main () { /* here is your function which needs structure pointer type casting void pointer to struct */ function((tdata *) vptr); }
Remarque: nous pouvons classer le pointeur vide dans n’importe quel type, c’est le but principal des pointeurs vides.