Pourquoi faire de l'allocation dynamique ? Il suffit de

char trash[]="h";
ou même, puisque trash n'est pas utilisé ensuite, ne pas stocker ce champ :

fscanf(fichier, "%2d", &heures);...