Bonjour je desire modifié un entier u initialisé à 0 à l'aide d'une fonction modifu
la voici :
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
}
l'appel de modifu se fait de deux facons:
En passant en paramètres un void*n
1ere facon:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
int val = 990088;
void *n = (void*)&val;
modifu(n);
2eme facon:
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);
Voila!
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

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
Voilà !!

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...