Bonjour,
1/ La solution de Guyt54 est belle, econome, et probablement une des meilleures.
2/ Neanmoins (je n'allais pas m'arreter la non plus), elle oublie une specificite de l'enonce (a la con) :Il convient donc de ne pas appeler xxx_Malloc (size+2), mais xxx_malloc (multiple de 16 immediatement superieur a size+2)."Les 2 fonctions renvoient un pointeur de type void* que si size est un multiple de 16."
Je laisse le soin au posteur de chercher comment on calcule cela elegament(oui, je sais, c'est vil).
J'ai eu a recruter des developpeurs, et cette absolue incomprehension de la base m'a autant choque qu'elle te choque : comment peut-on esperer faire quelque chose de correct lorsqu'on ne sait pas un minimum comment fonctionne la base ?Mais bon, toute cette nostalgie être peut-être celle d'un has-been qui ne saisit pas les modes d'apprentissage de cette nouvelle génération.
Ton analogie avec la voiture est bonne : pour simplement se deplacer d'un point A a un point B, on n'a pas besoin de savoir comment fonctionne le moteur. En revanche, pour economiser de l'essence sur sa conduite, ou tirer plus de performance de sa voiture, il est necessaire de savoir comment elle est construite, et ce qu'est un moteur.
Et ce n'est pas parce que beaucoup de developpeurs sont capables de realiser un logiciel qui fait le minimum vital que l'on doit pour autant s'en satisfaire.
Partager