• # Un jour dans ma folie

    Posté par . En réponse au journal Gestion des erreurs d’allocation mémoire en C. Évalué à 1.

    Un jour dans ma folie j'ai tenter un truc. Je me suis dis "Hey, et si je listais toutes mes allocations mémoires dans un nombre, et que j'enregistrais ensuite les libérations de mémoires au fur et à mesure. Si jamais j'ai une erreur de mémoire, je pourrais appliquer des opérations bitwise pour savoir qu'elles allocations je dois libérer avant de revenir au point de départ."
    Alors, deux choses
    1. J'ai passé deux jours à mettre en place ce monstre
    2. ça a fonctionné 10 minutes. Avant de me rendre compte que le nombre avait une limite, et qu'à partir de la 11 ème allocation, ça partait en cacahuète (normal parce que 2 puissance 11... blabla int, unsigned int)
    3. J'étais totalement déçu parce que ça fonctionnait mal avec les boucles
    4. j'ai arrêté de libérer la mémoire en cas d'erreur
    5. On m'a toujours appris que exit() quittait sans libérer la mémoire. C'est faux

    Pour conclure, je fais des if partout, c'est comme ça en C. En c++ avec la RAII (https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization) on gère ça différemment... :)