Lorsque tu récupères l'adresse du pointeur dans ta fonction, via une instruction du genre, j'imagine :
Code :
 void * addr = va_arg(args, void *); 
 
  | 
Tu peux voir cette valeur comme un entier. Tu as probablement déjà des fonctions pour afficher des entiers, alors utilises les directement.
 Petite difficulté : la taille d'un pointeur varie selon l'archi. Par exemple sous Win32:
Code :
 sizeof (void*) == sizeof (int) == sizeof (long) == sizeof (int32_t) 
 
  | 
Sur Win x64:
Code :
 sizeof (void *) == sizeof (long long) == sizeof (int64_t)   sizeof (int) == sizeof (long) == sizeof (int32_t) 
 
  | 
 Dans ce dernier cas, ne passe pas un (void *) à une fonction qui traite un (int).
... et ça différe encore sous Unix: c.f http://en.wikipedia.org/wiki/64-bi [...] ata_models
 
Message édité par tpierron le 12-11-2013 à 22:48:19