Bonjour,

J'ai cette fonction qui ne marche pas, l'environnement compile mais l'exécution est le résultat d'un beau plantage. Je suppose que cela vient des pointeurs ?

Merci d'avance.

[EDIT]

Au passage, existe t-il un type qui puisse stocker ce nombre 20282409603651670423947251286016. Apparemment le long double n'est pas suffisant et je ne connais pas de plus grand conteneur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
void FORMAT_SECONDE(double TIME, double *YEAR, double *DAY, double *HOUR, double *MINUTE, double *SECONDE)     
{
     double K_YEAR   = 31536000;
     double K_DAY    = 86400   ;
     double K_HOUR   = 3600    ;
     double K_MINUTE = 60      ;
 
     *YEAR    = floor(  TIME                                                 /K_YEAR             );
     *DAY     = floor( (TIME - (*YEAR)*K_YEAR                                )/K_DAY             ); 
     *HOUR    = floor( (TIME - (*YEAR)*K_YEAR - (*DAY)*K_DAY                 )/K_HOUR            );
     *MINUTE  = floor( (TIME - (*YEAR)*K_YEAR - (*DAY)*K_DAY - (*HOUR)*K_HOUR)/K_MINUTE          );
     *SECONDE =         TIME - (*YEAR)*K_YEAR - (*DAY)*K_DAY - (*HOUR)*K_HOUR - (*MINUTE)*K_MINUTE;
}