Bonjour.
Je cherche à convertir une struct timeval en double.

J'ai bricolé quelquechose, qui semble fonctionner :
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
double tvtod(struct timeval tv)
{
    char*sec=malloc(sizeof(long double));
    sprintf(sec,"%ld",tv.tv_sec);
 
    char*usec=malloc(sizeof(long double));
    sprintf(usec,"%ld",tv.tv_usec);
 
    char*temps=malloc(2*sizeof(long double)+8);
    strcat(temps,sec);
    strcat(temps,".");
    strcat(temps,usec);
 
    double tps =strtod(temps,NULL);
 
    free(sec);
    free(usec);
    free(temps);
 
return tps;
}

Cette fonction semble bien fonctionner mais au bout de 7 appels elle crache en segfault ...
Si quelqu'un a une idée pour régler le soucis ou a une autre proposition je suis preneur.

Merci !