Bonjour,
voilà j'ai un petit problème avec la fonction rand().
J'ai une classe dont une methode utilise rand() pour initialiser certains attributs. Mon problème est que les attributs sont toujours initialisés de la même façon. En effet, rand() me renvoie systematiquement les memes valeurs.
Or j'ai bien pensé a faire un srand(time(NULL)) au debut de mon programme. Je me suis dit que la construction des objets avait peut etre lieu avant l'appel à srand ce qui expliquerait le probleme, mais ce n'est pas le cas.
En gros dans main() j'ai
srand(time(NULL));
printf("MAIN : %i",rand()%50);
et dans ma methode :
printf("METHODE : %i",rand()%50);
J'obtiens dans la console dans cet ordre :
MAIN <un nombre toujours different>
METHODE <TOUJOURS LE MEME NOMBRE>
on dirait que le srand() dans le main n'a pas d'effet sur l'appel à rand() dans la methode. De plus, je suis sur Ubuntu. j'ai compilé sur un windows et je n'ai pas ce problème, le nombre genéré dans la methode est a chaque fois different...
Est-ce que quelqu'un a une idée ?
Je vous remercie