9.1 Notion de pointeur générique

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 :

sont toutes deux correctes si l'un au moins des deux pointeurs p ou q est de type void *, quel que soit le type de l'autre pointeur.

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 */




Pr. Marc BUFFAT
buffat@ufrmeca.univ-lyon1.fr
2004-12-01