C / C++ Fonction avec void* en paramètre

Résolu
Bonjour !

J'ai une fonction dont le prototype est :
int nombre(void*);
Dans le main(), je dois appeler cette fonction en lui faisant passer un 'int', qu'il me retournera.

int main(){
int a = 9;
int b = nombre( .. ); // b doit valoir 9
}
int nombre(void* data){
// Traitement de 'data'
return [le nombre recu];
}

Comment faire pour faire passer la variable 'a' vers la 'b', en passant par cette fonction ?
Merci !

2 réponses

  1. int main(){
        int a = 9;
        int b = nombre ( &a );
        // b vaut 9 !
    }
    
    int nombre(void* data){
        int retour = *(int*)data;
        return retour;
    }

    Merci beaucoup !! Ca fonctionne parfaitement, sans avertissement ! :)
    1
    1. J'ai trouvé tout seul =D C'est plus bête que ce que je ne pensait...
      Cet exemple n'est que très peu repris sur les autres forums, et encore moins en Français.

      int main(){
      int a = 9;
      int b = nombre( (void*)a );
      }
      int nombre(void* data){
      int retour = (int*)data;
      return retour;
      }

      Par contre, j'ai un avertissement ...
      [Warning] initialization makes integer from pointer without a cast 
      Quelqu'un a-t-il une solution ?
      Merci !
      1
      1. Contributeur
        Je verrais plutôt :
        int b=nombre(&a);

        et int retour=*(int*)data;

        C'est plus logique car void* est un pointeur et cela ne devrait pas générer de warning.

        Cdlt,
        0