En una funcion convierto los punteros void según lo necesite, es decir según el que le pase, lo que no se si es esto es una practica aceptada en C, compilar y funcionar funciona pero no se si debe hacer o no, o hacer esto puede acarrear fallos en algunos programas.
Me gustaría saber si es algo así como una practica que se puede hacer pero que debe evitarse en el mayor de los casos.
Esta es la función, lo que hago es convertir al tipo "medicos" o "pacientes" dependiendo de si "opc" es 0 u 1.
Al hacer la llamada solo el puntero que le pase a la función puede ser tanto del tipo
"medicos" como del "pacientes".
Código
bool val_dni(void *primero,int dni,bool opc){ medicos *auxM; pacientes *auxP; int m = 0; int p = 0; /* 0 para medicos, 1 para pacientes. 0 si no existe, 1 si existe. */ if(opc == 1){ auxP = (pacientes *)primero; while(auxP != NULL){ if(auxP->dni == dni){ return 1; } auxP = auxP->next; } return 0; }else{ auxM = (medicos *)primero; while(auxM != NULL){ if(auxM->dni == dni){return 1; } auxM = auxM->next; } return 0; } }
Un saludo.