Encore une fois, toutes les réponses ci-dessus raté le point de mal. L'OP voulait convertir une valeur de type pointeur vers un int valeur, au lieu de cela, la plupart des réponses, d'une façon ou l'autre, essayé à tort de convertir le contenu d'arg points pour une valeur int. Et, la plupart de ces ne travaillent même sur gcc4.
La bonne réponse est, si l'on ne veut pas perdre la précision des données,
int x = *((int*)(&arg));
Cela fonctionne sur GCC4.
Le mieux est, si l'on peut, ne pas faire ce genre de casting, en revanche, si la même adresse mémoire partagée pour le pointeur de int (par exemple, pour l'enregistrement de RAM), l'utilisation de l'union, et assurez-vous que, si le mem adresse est considéré comme un int seulement si vous savez, c'était comme un int.