Voila j'ai un petit problème de pointeurs, satanés pointeurs!
Ma fonction est la suivante:
Cette fonction recherche dans un tableau (stock) de struct_nbr cases le port donné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
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]
Partager