void *
est le type pointeur générique, c'est à dire capable
de pointer vers n'importe quel type d'objet.
Sans un tel type, il ne serait pas possible par exemple d'indiquer le type
d'objet rendu par les fonctions
d'allocation de mémoire qui rendent un pointeur vers l'objet alloué, puisque
ce type varie d'une invocation à l'autre de la fonction.
Par exemple, la fonction malloc
de la bibliothèque standard est
définie de la manière suivante :
void *malloc(size_t size);3.1
char *
qui jouait de manière conventionnelle ce rôle de
pointeur générique.
Le lecteur ne s'étonnera donc pas de trouver dans les vieux (?) manuels, la
fonction malloc
définie de la manière suivante :
char *malloc(size);