Langage c (pb avec void*)

Fermé
estelle - 10 mars 2004 à 00:12
 tmin - 10 mars 2004 à 17:42
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

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