• [^] # Re: Intéressant

    Posté par . En réponse au journal Encore une histoire de récupérateur de mémoire. Évalué à 2.

    Si c'etait aussi simple que ca, y aurait pas autant de programmes avec des fuites memoire, hein.

    Je ne sais pas mais comme tu le dis toi même, faut lire la doc. Pour avoir bossé sur des gros projet (c++ principalement) les gros soucis mémoire venaient principalement parce qu'on a filé un clavier à des branquinioles. J'ai vu des horreurs du genre
    =======
    char *a = malloc (... )
    ...
    char *b=a;
    free(a);
    return(b);
    ====
    ou plus subtile
    auto_ptr fct_truc(){
    if (truc) return x_;
    return auto_ptr(new machin())
    }
    utilisé ensuite comme suit
    machin &plop=&(*fct_truc());

    des non équivalence entre new[] delete[] (pourtant c'est pas dur)
    un free d'une variable de la pile (non crée par new ou malloc)

    Et une légère fuite mémoire du à la non libération d'une ressource précédemment passée à une lib lorsqu'on la remplaçait (la fonction renvoyait le pointeur passé précédemment et fallait donc le libérer, précisé correctement dans la doc.)

    Enfin heureusement valgrind point tout ces soucis ;) (par contre si y a du versant dans le code attendez vous à du verbeux, cette lib est tout sauf clean)

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent