La norme a défini le type void * ou pointeur générique afin de faciliter la manipulation des pointeurs et des objets pointés indépendamment de leur type.
On ne pourra pas appliquer les opérateurs d'indirection et d'auto-incrémentation, auto-décrémentation à un pointeur générique.
Par contre, si p et q sont deux pointeurs, les affectations :
Exemples
int x[5], i, *k; float *r; void *p; void *q; p = &x[0]; /* correct */ *p = ... /* interdit */ q = p + 1; /* interdit */ r = p; /* correct */ p = r; /* correct */ p[1] = ...; /* interdit */