Buenas
memset((void *) &dir_serv, 0, sizeof(struct sockaddr_in));
Poniendo o no el (void *), funciona.
Quería preguntaros, que diferencia hay en ponerlo y no ponerlo y si es adecuado o no.
Graxie ;)
No creo que sea la diferencia, como verás, en el prototipo de memset tienes:
void * memset ( void * ptr, int value, size_t num );
Por lo que tienes un puntero a void, lo cual se utiliza cuando no sabes el tipo de dato que se pasa por anticipado... Si haces un casting explícito, es castear el tipo de dato a un vacío lo que es válido igualmente con que no lo hagas.