Passage d'argument sur _beginthread [C/C++] - Programmation
Marsh Posté le 01-04-2002 à 10:42:39
peut-etre parce que buf est une chaine allouee sur la pile donc
pointeur buf non valide apres l'appel a _beginthread?
LEGREG
Marsh Posté le 01-04-2002 à 11:15:24
antsite a écrit a écrit : Comment faire alors pour résoudre ce problème ? |
utiliser une chaine dont la duree de vie n'est
pas limitee par le thread appelant.
C'est a dire soit une chaine declaree en global
soit une chaine allouee sur le tas
avec new. (le thread doit donc dans ce cas
faire le delete correspondant)
LEGREG
Marsh Posté le 01-04-2002 à 10:16:51
Salut,
Je souhaite passer un argument à la fonction _beginthread :
main()
{
int n = 5;
_beginthread(MonThread,0,(void*)n);
}
void MonThread(void*)
{
printf("Le nombre : %d",id);
_endthread();
}
La ça marche y pas de problèmes. Seulement je souhaite passer un char* et non un int :
main()
{
char buf[] = "test";
_beginthread(MonThread,0,(void*)buf);
}
void MonThread(void *id)
{
printf("La chaine : %s",id);
_endthread();
}
et la ça marche pas (ça compile mais c'est pas la chaine voulue qui est affichée), quelqu'un peut-il m'aider ? Merci