Jeter un pointeur vide dans une structure

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.