Bonjour je desire modifié un entier u initialisé à 0 à l'aide d'une fonction modifu
la voici :
l'appel de modifu se fait de deux facons:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void modifu( void*p) { u = (int)p; // u est static }
En passant en paramètres un void*n
1ere facon:
2eme facon:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int val = 990088; void *n = (void*)&val; modifu(n);
Voila!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int val = 990088; void *n = (void*)val; //plus de & modifu(n);
Peut etre vous l'aurez deja deviné mais la premiere facon ne marche pas
Par contre la seconde marche.
(Dans la premiere u vaut une variable "bizarre")
Le truc c'est qu'en utilisant la facon 2 j'ai 2 warning qui me dérange
Les warning C4047 et C4312
Voilà !!C4047: int diffère de void* dans différents niveaux d'indirections
et
C4312: cast de type conversion de int en void* de taille supérieure
Comment puis je faire pour ne plus avoir ces warning !! (je ne veux bien sur par modifié modifu(void*) et modifu(int)
Ce serait sympa de me répondre...
Partager