Ecrivez un petit module "mon_malloc.[c-h]" redéfinissant les fonctions d'allocation et de libération mémoire classiques (malloc, calloc, realloc, free ... appellez-les mon_malloc, mon_calloc, mon_realloc et mon_free) de sorte que les trois fonctions d'allocation (malloc, calloc, realloc) testent si l'allocation s'est bien déroulée (le résultat de l'allocation mémoire est différent de NULL) et la fonction free teste que l'argument passé est différent de NULL. Dans le cas d'une commande ratée, on veut sortir du programme avec la valeur EXIT_FAILURE, en affichant sur la sortie erreur (stderr) un message expliquant l'erreur qui s'est produite (erreur d'allocation ou erreur de libération) et dans quel fichier et à quelle ligne de ce fichier s'est produite cette erreur. Par exemple : si dans le fichier toto.c, à la ligne 34, l'instruction suivante échoue p = mon_malloc(taille); on veut sortir du programme avec EXIT_FAILURE en affichant sur stderr le message suivant "Erreur d'allocation dans toto.c à la ligne 34" Pour connaître le nom du fichier courant (resp. la ligne dans ce fichier), vous pouvez utiliser les variables __FILE__ (de type char *) __LINE__ (de type int) disponibles en incluant le fichier . Pour afficher sur stderr, man fprintf.