• [^] # Re: en repassant

    Posté par . En réponse au message free() or not free() ?. Évalué à 0.

    En mettant des parenthèses dans ta macro, tu évite la boulette:

    #ifdef DEBUG
    #define MYFREE(ptr) (assert(ptr!=NULL); free(ptr); ptr=NULL)
    #else
    #define MYFREE(ptr) (free(ptr); ptr=NULL)
    #endif


    On doit utiliser sans modération les ( ) dans les macros.