Langage c (pb avec void*)

estelle -  
 tmin -
Bonjour

donc voilà j'ai une fonction du style : unsigned int f(void * parametre);
je voudraire faire appel a cette fonction depuis le main en transmettant un parametre de type int tout en gardant ds la declaration de la fonction un void* .
je n'arrive pas a utiliser le parametre dans la fonction, il y a surement un pb de cast..
merci de m'aider

2 réponses

  1. tmin
     
    //Compiler et testé avec Borland C++ 5.01
    #include <iostream.h>

    unsigned int f(void * parametre);

    main()
    {
    int a=2;

    f((void *)&a);
    }

    unsigned int f(void * parametre)
    {
    int *b;

    //on ne peut pas utiliser un pointeur sur un void avant de
    //l'avoir reassigné pour qu'il pointe vers un objet d' un autre type
    b=(int *)parametre;

    //utilisation du pointeur
    cout<<"Adresse: "<<b<<endl<<"Valeur: "<<*b;
    }
    0
  2. tmin
     
    j'ai repris cette example et je les completer un peu (lol a 3h du mat j'etait un peu fatiguer...)

    //Compiler et testé avec Borland C++ 5.01
    #include <iostream.h>

    unsigned int f(void * parametre);

    main()
    {
    int a=2;

    f(&a);
    }

    unsigned int f(void * parametre)
    {
    int *b;
    int c;

    b=(int *)parametre;
    c=*(int *)parametre;

    //utilisations du pointeur
    cout<<"b Adresse: "<<b<<" Valeur: "<<*b<<endl;
    cout<<"c Adresse: "<<&c<<" Valeur: "<<c<<endl;
    cout<<"parametre Adresse: "<<(int *)parametre<< Valeur: "<<*(int *)parametre<<endl;
    }
    0