Le cast de la valeur de retour de *alloc est inutile et peut même cacher l'oubli d'inclusion de stdlib.h. A éviter.
Tu n'as pas vérifié que ptr n'est pas nul...
fread(ptr,(size_t)size,1,data_file);
Le cast en size_t est inutile, la conversion se faisant implicitement lors de l'appel de fread.
Tu as oublié de vérifier la valeur de retour de fread, donc tu ne sais pas si tu as effectivement lu ce que tu voulais, ou non. Il a pu y avoir une erreur d'I/O...
L'utilisation d'une valeur "size" est douteuse si ton code ne fait que ça... Evite, car ça risque d'être source de bugs (pas portable, valeur modifée en cours de programme...).
# Commentaires
Posté par alf . En réponse au message Lecture de fichier binaire. Évalué à 1.
printf("%02X ",*((short int *)ptr));Comme dit par ailleurs, c'est horrible.