pointeurs, toujours les pointeurs :/
Voila j'ai un petit problème de pointeurs, satanés pointeurs!
Ma fonction est la suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| int
give_place (void **stock, const int struct_nbr, const int port)
{
int i;
/* check all places */
for (i=0; i < struct_nbr; i++)
if ((*stock+i)->port == port)
return (i);
/* port not found */
return (-1);
} |
Cette fonction recherche dans un tableau (stock) de struct_nbr cases le port donné.
Mon problème est le suivant:
Le pointeur *stock peut etre de différents types, i_http, i_ftp...
Ici a la compilation j'ai les 2 erreurs suivantes:
retrosniffMemory.c:40: attention : dereferencing `void *' pointer
retrosniffMemory.c:40: error: void value not ignored as it ought to be
Un parametre que je pourrais passé en plus a la fonction pourrait me permettre de connaitre le type qu'il faut utiliser pour *stock mais je ne vois vraiment pas comment intégrer le changement dynamique du type du pointeur sans faire un switch et réécrire le coeur de la fonction pour chaque type :(
Si qunlqun a une suggestion ;)
[Balises CODE ajoutées par Anomaly - Merci d'y penser vous-même à l'avenir ;)]