Envoyé par Emmanuel Delahaye
Hum, confusant. Cette discussion a déjà eu lieu récemment.
Le type void n'existe pas. Le mot clé void sert simplement à indiquer l'absence de paramètres dans un prototype (séparé ou non) et l'absence de valeur retournée par une fonction.
Par contre, un 'pointeur sur void' (mauvais choix de terme, j'aurais mis 'generic') ou void *, désigne un pointeur contenant l'adresse d'une donnée sans en préciser le type.
La conversion void * <-> T* est toujours correcte et implicite en C.
Attention quand même à ne pas faire n'importe quoi, car on travaille sans filet. Si les types ne sont pas compatibles, le comportement est indéfini. Il est de la responsabilité du programmeur d'écrire du code correct. Le compilateur ne voit rien.