J'essaie d'envoyer un time_t à une fonction en utilisant une variable pointeur time_t. Je ne reçois aucun avertissement de compilateur lors de la compilation de mon code, mais une erreur valgrind lorsque je cours le code avec valgrind.Comment envoyer correctement le pointeur time_t à la fonction? J'ai rencontré une erreur valgrind en essayant de le faire
Mon code:
printTime(time_t *time){
<prints time>
}
int main(void){
struct tm beginTime = {0};
time_t *begin = 0;
strptime("2012",""%Y,&beginTime);
beginTime.tm_isdst = -1;
*begin = mktime(&beginTime); **<-- Valgrind error points here**
printTime(begin);
return 0;
}
Ceci est l'erreur valgrind Je reçois:
Invalid write of size 8. (Points at the location pointed at above)
vous pouvez commencer malloc – khuderm
@khuderm: Ou tout simplement faire 'time_t begin' et passer' & begin'. – EOF
Pourquoi utilisez-vous 'time_t *'? Essayez 'time_t begin = mktime (& begintime);' et passez l'adresse de début? –