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