Nous avons un problème avec la fonction localtime. Le but de la fonctoin est de réafficher seulement les chiffres qui changent dans une horloge numérique.
Pour cela, nous avons crée la fonction suivante :
void reaffiche_heure(time_t heurea, time_t heurep, WINDOW** chiffres) {
struct tm* sheurea = localtime(&heurea);
struct tm* sheurep = localtime(&heurep);
.......
}
Mais, bien que les timestamps soient différents (ce qui est normal), localtime() nous renvoie la même structure.
Voici un log GDB :
Breakpoint 1, reaffiche_heure (heurea=1114614994, heurep=1114614811,
chiffres=0x805d5c0) at horloge.c:67
67 struct tm* sheurea = localtime(&heurea);
(gdb)
68 struct tm* sheurep = localtime(&heurep);
(gdb)
76 ecrire_double_point(chiffres[2], unites(sheurea->tm_sec));
(gdb) print heurep
$5 = 1114614811
(gdb) print heurea
$6 = 1114614994
(gdb) print *sheurep
$7 = {tm_sec = 31, tm_min = 13, tm_hour = 17, tm_mday = 27, tm_mon = 3,
tm_year = 105, tm_wday = 3, tm_yday = 116,
tm_isdst = 1, tm_gmtoff = 7200, tm_zone = 0x8060138 "CEST"}
(gdb) print *sheurea
$8 = {tm_sec = 31, tm_min = 13, tm_hour = 17, tm_mday = 27, tm_mon = 3,
tm_year = 105, tm_wday = 3, tm_yday = 116,
tm_isdst = 1, tm_gmtoff = 7200, tm_zone = 0x8060138 "CEST"}
(gdb)
On voit bien heurep et heurea différents et *sheurep et *sheurea identiques.
Une idée ?
Merci bien,
# Variable static
Posté par Provencher Luc . Évalué à 6.
[^] # Re: Variable static
Posté par galactikboulay . Évalué à 4.
Par exemple:
localtime_r(&heurea,&sheurea);
localtime_r(&heurep,&sheurep);
est équivalent et évite les memcpy().
My 2 cents.
# [ça marche !] Merci !
Posté par Yves Dessertine . Évalué à 1.
Je comprends mieux ce que ça veut dire quand la fonction est donnée pour renvoyer un struct tm * lol
[^] # Re: [ça marche !] Merci !
Posté par Yves Dessertine . Évalué à 1.
[^] # Re: [ça marche !] Merci !
Posté par gc (site web personnel) . Évalué à 3.
The return value points to a statically allocated struct which might be overwritten by subsequent calls to any of the date and time functions.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.