mriviere
Messages postés17Date d'inscriptionjeudi 26 janvier 2006StatutMembreDernière intervention23 juin 2006
-
23 juin 2006 à 09:02
CG85
Messages postés30Date d'inscriptionvendredi 2 janvier 2004StatutMembreDernière intervention10 février 2010
-
26 juil. 2006 à 19:55
Bonjour , j'ai un probleme d'initialisation de variable, en effet j'utilise deux fois la meme fonction dans mon main pour deux cas different, mais mon probleme est qu'a chaque fois qu'il rentre dans ma fonction il reinitialise ma variable ce que je ne desire pas!
Je rentre dans ma fonction j'initialise time_alarm a 0 si il y a une alarm time_alarm est egal a real_time et ainsi je ne souhaite plus initialiser time_alarm dans ma boucle while. Je crois qu'il y a une solution pour initialiser une seule fois une variable mais je ne trouve pas.
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 23 juin 2006 à 09:45
Ce n'est pas trais claire tous cela, mais si tu appel 2 fois la fonction dans le main et que tu n'utilise pas de pointeur c'est normale que ta variable se réinitialise a chaque fois. Car si tu la passe en paramètre sache que la varaible dans ton fonction est une copie de celle passée en paramètre et que si tu la modifie a l'intérieure de ta fonction en aucun cas , la valeur de ta variable déclarée hors de ta fonction ne sera modifiée, pour cela il faut utiliser les pointeurs. Et donc passer en paramètre l'adresse de la variable et non la valeur de celle-ci.
Et si la variable qui se réinitialise tous le temps est déclarée dans la fonction, sache que la variable est crée est chaque appel a la fonction et détruite a la fin de celle-ci.
mriviere
Messages postés17Date d'inscriptionjeudi 26 janvier 2006StatutMembreDernière intervention23 juin 2006 23 juin 2006 à 10:05
Merci beaucoup pour votre aide je vais essayer la soluce de vecchio par flemme mais je suis sur que ta methode deck est plus propre. En tout cas merci beaucoup pour vos reponse rapide!
Lord_Patoche
Messages postés196Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 1 mai 20093 23 juin 2006 à 14:23
Autre soluce, tu crées une variable booléenne que tu mets à la valeur 'true' dès que ta variable Y est initialisée. Ainsi, tu interdits cette initialisation de Y si ta booléenne est à true. C'est assez rustique comme système, mais tu est sûr que ça fonctionne.
A+
LaPatoshe
CG85
Messages postés30Date d'inscriptionvendredi 2 janvier 2004StatutMembreDernière intervention10 février 2010 26 juil. 2006 à 19:55
Une variable de type statique est normalement allouée en dur dans le segment data d'un programme et donc associée à une valeur nule
Attention : si vous utilisez une variable statique dans une fonction/procédure ou comme invariant de boucle il ne faut pas oublier de la réinitialiser avant utilisation vu que l'on peut l'assimiler à une "variable globale"....